Fix pep8 errors

Fixes existing pep8 errors and reenables the corresponding tox rules

Change-Id: I4168a90c40173e4c35c9d75030cd592ace657508
This commit is contained in:
Nicholas Jones
2017-08-03 15:34:31 -05:00
parent 747480367b
commit 7667a7b9af
289 changed files with 1156 additions and 1522 deletions

View File

@@ -1,15 +1,12 @@
import logging
import os
from pecan import make_app, conf
from pecan.commands import CommandRunner
from services import region_resource_id_status
from storage import factory
from sot import sot_factory
from audit_client.api import audit
from pecan import conf, make_app
from pecan.commands import CommandRunner
from services import region_resource_id_status
from sot import sot_factory
from storage import factory
logger = logging.getLogger(__name__)
@@ -70,7 +67,7 @@ def main():
drive, path_and_file = os.path.splitdrive(dir_name)
path, filename = os.path.split(path_and_file)
runner = CommandRunner()
runner.run(['serve', path+'/config.py'])
runner.run(['serve', path + '/config.py'])
if __name__ == "__main__":
main()

View File

@@ -1,9 +1,9 @@
"""Configuration rest API input module."""
import logging
from orm_common.utils import utils
from pecan import conf
from pecan import rest
from pecan import conf, rest
from wsmeext.pecan import wsexpose
logger = logging.getLogger(__name__)

View File

@@ -5,17 +5,15 @@ import logging.handlers
import time
import pecan
import wsme
from pecan import rest
from rds.controllers.v1.base import (ClientSideError, LockedEntity,
NotAllowedError)
from rds.services.base import ConflictValue
from rds.services import resource as ResourceService
import wsme
from wsme import types as wtypes
from wsmeext.pecan import wsexpose
from rds.controllers.v1.base import ClientSideError
from rds.controllers.v1.base import LockedEntity
from rds.controllers.v1.base import NotAllowedError
from rds.services import resource as ResourceService
from rds.services.base import ConflictValue
my_logger = logging.getLogger(__name__)
resources_operation_list = {
@@ -192,7 +190,7 @@ class CreateNewResource(rest.RestController):
resource_type,
resource_id)
res = Result(**{resource_type: CreatedResource(id=resource_id,
created='%d' % (time.time()*1000),
created='%d' % (time.time() * 1000),
links=Links(site_link))})
return res
except ConflictValue as e:
@@ -233,11 +231,11 @@ class CreateNewResource(rest.RestController):
site_link = "%s/v1/rds/%s/%s" % (base_url,
resource_type,
resource_id)
res = Result(**{resource_type: CreatedResource(id=resource_id,
updated='%d' % (
time.time() * 1000),
links=Links(
site_link))})
res = Result(**{
resource_type: CreatedResource(
id=resource_id,
updated='%d' % (time.time() * 1000),
links=Links(site_link))})
return res
except ConflictValue as e:
my_logger.error("the request blocked need to wait "

View File

@@ -1,8 +1,7 @@
"""v1 controller."""
from rds.controllers.v1 import logs
from rds.controllers.v1.configuration import root as config_root
from rds.controllers.v1 import logs
from rds.controllers.v1.resources import root as Rds
from rds.controllers.v1.status import resource_status

View File

@@ -1,13 +1,12 @@
"""handle get resource module."""
import logging
import wsme
from pecan import rest
from wsme import types as wtypes
from wsmeext.pecan import wsexpose
from rds.controllers.v1.base import EntityNotFoundError
from rds.services import region_resource_id_status as regionResourceIdStatus
import wsme
from wsme import types as wtypes
from wsmeext.pecan import wsexpose
logger = logging.getLogger(__name__)
@@ -20,7 +19,7 @@ class ResourceMetaData(wtypes.DynamicBase):
size = wsme.wsattr(wtypes.text, mandatory=True)
def __init__(self, size='', virtual_size='', checksum=''):
"""
"""init
:param size:
:param virtual_size:

View File

@@ -2,17 +2,16 @@
import logging
import time
import wsme
from pecan import rest
from rds.controllers.v1.base import InputValueError, ClientSideError
from rds.controllers.v1.base import InputValueError
from rds.controllers.v1.status import get_resource
from rds.services.base import ErrorMesage, InputError
from rds.services import region_resource_id_status as regionResourceIdStatus
from rds.utils import utils
import wsme
from wsme import types as wtypes
from wsmeext.pecan import wsexpose
from rds.controllers.v1.status import get_resource
from rds.services import region_resource_id_status as regionResourceIdStatus
from rds.services.base import InputError, ErrorMesage
from rds.utils import utils
logger = logging.getLogger(__name__)
@@ -23,7 +22,7 @@ class MetaData(wtypes.DynamicBase):
size = wsme.wsattr(wtypes.text, mandatory=True)
def __init__(self, checksum=None, virtual_size=None, size=None):
"""
"""init
:param checksum:
:param virtual_size:
@@ -126,7 +125,7 @@ class Status(rest.RestController):
logger.info("post status")
logger.debug("parse json!")
data_to_save = dict(
timestamp=int(time.time())*1000,
timestamp=int(time.time()) * 1000,
region=status_input.rds_listener.region,
resource_id=status_input.rds_listener.resource_id,
status=status_input.rds_listener.status,

View File

@@ -1,15 +1,13 @@
"""ORD trigger main module."""
import json
import logging
import time
import logging
import requests
from pecan import conf
from audit_client.api import audit
from pecan import conf
from rds.services import region_resource_id_status as regionResourceIdStatus
# REST API constants
@@ -145,9 +143,9 @@ def _notify(ord_url,
# Make sure the ORD sent an ACK
if response.status_code != ACK_CODE:
message = 'Did not receive an ACK from ORD %s, status code: %d' % (
ord_url, response.status_code, )
ord_url, response.status_code, )
encoded_message = message.replace('\n', '_').replace('\r', '_')
if encoded_message != message:
if encoded_message != message:
encoded_message = encoded_message + "(encoded)"
logger.error(encoded_message)
raise NotifyNotAcknowledgedError(message)
@@ -284,5 +282,6 @@ def notify_ord(transaction_id,
_update_audit(region_id, application_id, tracking_id, transaction_id,
transaction_type, resource_id, user_id, external_id,
event_details, status)
logger.debug("Create Resource Requested to ORD: region=%s resource_id=%s status=%s"
% (region_id, resource_id, status))
logger.debug(
"Create Resource Requested to ORD: region=%s resource_id=%s status=%s" % (
region_id, resource_id, status))

View File

@@ -1,12 +1,11 @@
import requests
import json
import logging
import requests
from pecan import conf
from rds.utils import authentication as AuthService
from rds.services.base import ErrorMesage
from rds.utils import authentication as AuthService
logger = logging.getLogger(__name__)
@@ -20,7 +19,7 @@ def _set_headers():
if token_id:
headers['X-Auth-Token'] = token_id
headers['X-Auth-Region'] = region
except:
except Exception:
logger.error("no token")

View File

@@ -1,12 +1,10 @@
"""python module."""
import json
import logging
import requests
from pecan import conf
from rds.services.base import ErrorMesage
logger = logging.getLogger(__name__)

View File

@@ -15,8 +15,5 @@ class ErrorMesage(Error):
class ConflictValue(Error):
"""
block values if operation still in progress
"""
"""block values if operation still in progress"""
pass

View File

@@ -10,4 +10,4 @@ class ResourceData(object):
self.operation = operation
self.transaction_id = transaction_id
self.model = model
self.external_transaction_id = external_transaction_id
self.external_transaction_id = external_transaction_id

View File

@@ -1,6 +1,5 @@
import logging
import sys
import time
from rds.services.base import Error, InputError
from rds.storage import factory
@@ -22,14 +21,14 @@ def add_status(data):
", transaction_id [{}] and resource_id [{}], ord_notifier_id [{}], "
"error message [{}], error code [{}] and "
"resource_extra_metadata [{}]".format(data['timestamp'],
data['region'],
data['status'],
data['transaction_id'],
data['resource_id'],
data['ord_notifier_id'],
data['error_msg'],
data['error_code'],
data.get('resource_extra_metadata', None)))
data['region'],
data['status'],
data['transaction_id'],
data['resource_id'],
data['ord_notifier_id'],
data['error_msg'],
data['error_code'],
data.get('resource_extra_metadata', None)))
try:
validate_status_value(data['status'])
@@ -47,7 +46,7 @@ def add_status(data):
except Error as e:
logger.exception("invalid inputs error")
raise
except:
except Exception:
logger.exception("Unexpected error: {}".format(sys.exc_info()[0]))
raise
@@ -93,4 +92,4 @@ def validate_status_value(status):
# logger.debug("send metadata {} to ims :- {} for region {}".format(
# data['resource_extra_metadata'], data['resource_id'], data['region']))
# # ims_proxy.send_image_metadata(data['resource_extra_metadata'], data['resource_id'], data['region'])
# return
# return

View File

@@ -2,19 +2,14 @@
import logging
import time
from pecan import conf
from pecan import request
from pecan import conf, request
from rds.services import region_resource_id_status as regionResourceIdStatus
from rds.services import yaml_customer_builder
from rds.services import yaml_flavor_bulder
from rds.services import yaml_image_builder
from rds.services.base import ConflictValue
from rds.services.base import ErrorMesage
from rds.services import (yaml_customer_builder, yaml_flavor_bulder,
yaml_image_builder)
from rds.services.base import ConflictValue, ErrorMesage
from rds.services.model.resource_input import ResourceData as InputData
from rds.sot import sot_factory
from rds.utils import uuid_utils
from rds.utils import utils
from rds.utils import utils, uuid_utils
my_logger = logging.getLogger(__name__)
@@ -43,8 +38,8 @@ def _get_inputs_from_resource_type(jsondata,
def _region_valid(region):
if 'rms_status' in region and region[
'rms_status'] not in conf.allow_region_statuses:
if ('rms_status' in region
and region['rms_status'] not in conf.allow_region_statuses):
return False
return True
@@ -141,8 +136,9 @@ def _check_resource_status(input_data):
def update_sot(input_data):
"""create resource."""
my_logger.debug("build yaml file for %s id: %s" % (input_data.resource_type,
input_data.resource_id))
my_logger.debug(
"build yaml file for %s id: %s" % (input_data.resource_type,
input_data.resource_id))
targetslist = _create_data_to_sot(input_data)
my_logger.debug("upload yaml to SoT")
_upload_to_sot(input_data.resource_id,

View File

@@ -1,6 +1,7 @@
"""yaml build build yaml from json input."""
import logging
import re
import yaml
from pecan import conf
@@ -40,9 +41,9 @@ def creat_final_yaml(title, description, resources, outputs):
default_flow_style=False))
resources_yaml = re.sub("'", '', resourcesyaml)
yamldata = title_yaml
yamldata = yamldata + "\n"+description_yaml
yamldata = yamldata + "\n"+resources_yaml
yamldata = yamldata + "\n"+yaml.dump(outputs)
yamldata = yamldata + "\n" + description_yaml
yamldata = yamldata + "\n" + resources_yaml
yamldata = yamldata + "\n" + yaml.dump(outputs)
return yamldata
@@ -103,9 +104,6 @@ def yamlbuilder(alldata, region):
{"role": role_format % role,
'project': "{'get_resource': '%s'}" % alldata['uuid']}
)
# create the output for roles
# outputs['outputs']["%s_id" % role] =\
# {"value": {"get_resource": "%s" % role}}
# no support for group when type is ldap
if yaml_type != 'ldap':
@@ -156,7 +154,6 @@ def yamlbuilder(alldata, region):
if ite in quotas_keys:
items[item][quotas_keys[ite]] = items[item][ite]
del items[item][ite]
#------------------------------------
# adding tenant to each quota
items[item]['tenant'] = \

View File

@@ -3,6 +3,7 @@ import logging
import re
import yaml
from pecan import conf
my_logger = logging.getLogger(__name__)

View File

@@ -2,6 +2,7 @@ import logging
import re
import yaml
from pecan import conf
my_logger = logging.getLogger(__name__)

View File

@@ -1,6 +1,3 @@
import subprocess
from pecan import conf
class BaseGit(object):
@@ -32,4 +29,3 @@ class GitResetError(Exception):
class GitValidateError(Exception):
pass

View File

@@ -1,9 +1,8 @@
import logging
from pecan import conf
from gittle import Gittle
from git_base import BaseGit, GitInitError, GitUploadError
from gittle import Gittle
from pecan import conf
logger = logging.getLogger(__name__)

View File

@@ -1,14 +1,13 @@
"""Native (bash commands) Git module."""
import logging
import subprocess, shlex
import shlex
import subprocess
from threading import Timer
import time
from pecan import conf
from git_base import BaseGit
from git_base import GitUploadError, GitInitError, GitResetError
from git_base import GitValidateError
from git_base import (BaseGit, GitInitError, GitResetError, GitUploadError,
GitValidateError)
from pecan import conf
logger = logging.getLogger(__name__)
@@ -23,8 +22,8 @@ class GitNative(BaseGit):
"Git server url: {}, "
"Git command timeout: "
"{} seconds".format(conf.git.local_repository_path,
conf.git.git_server_url,
conf.git.git_cmd_timeout))
conf.git.git_server_url,
conf.git.git_cmd_timeout))
out, error = self._git_pull(conf.git.local_repository_path)
if self._is_conflict(out) or self._is_error(error):

View File

@@ -2,14 +2,13 @@ import logging
import os
import threading
import git_factory
from git_base import (GitInitError, GitResetError, GitUploadError,
GitValidateError)
from rds.ordupdate.ord_notifier import notify_ord
from rds.sot import base_sot
from rds.sot.base_sot import SoTError
import git_factory
from git_base import GitUploadError, GitInitError, GitResetError
from git_base import GitValidateError
logger = logging.getLogger(__name__)
lock = threading.Lock()
@@ -226,8 +225,3 @@ def cleanup(git_impl):
except GitResetError as exc:
logger.error(exc.message)
raise SoTError(exc.message)

View File

@@ -1,4 +1,5 @@
from rds.storage.mysql.region_resource_id_status import Connection as RegionResourceIdStatusConnection
from rds.storage.mysql.region_resource_id_status import \
Connection as RegionResourceIdStatusConnection
database = {
'url': 'na'
@@ -7,4 +8,3 @@ database = {
def get_region_resource_id_status_connection():
return RegionResourceIdStatusConnection(database['url'])

View File

@@ -1,16 +1,14 @@
import logging
import time
import oslo_db
from oslo_db.sqlalchemy import session as db_session
from sqlalchemy import Column, Integer, Text, BigInteger, ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative.api import declarative_base
from pecan import conf
from rds.services.model.region_resource_id_status import Model, StatusModel
from rds.storage import region_resource_id_status
import logging
import oslo_db
from pecan import conf
from sqlalchemy import BigInteger, Column, ForeignKey, Integer, Text
from sqlalchemy.ext.declarative.api import declarative_base
from sqlalchemy.orm import relationship
Base = declarative_base()
logger = logging.getLogger(__name__)
@@ -203,10 +201,8 @@ class Connection(region_resource_id_status.Base):
return None
def get_timstamp_pair(self):
timestamp = int(time.time())*1000
timestamp = int(time.time()) * 1000
# assume same time period for all resource types
max_interval_time_in_seconds = conf.region_resource_id_status.max_interval_time.default * 60
ref_timestamp = (int(time.time()) - max_interval_time_in_seconds) * 1000
return timestamp, ref_timestamp

View File

@@ -21,4 +21,4 @@ class Base(object):
raise NotImplementedError("Please Implement this method")
def get_records_by_filter_args(self, **filter_args):
raise NotImplementedError("Please Implement this method")
raise NotImplementedError("Please Implement this method")

View File

@@ -74,7 +74,7 @@ yaml_configs = {
}
}
},
'flavor_yaml':{
'flavor_yaml': {
'yaml_version': '2013-05-23',
'yaml_args': {
'rxtx_factor': 1
@@ -161,10 +161,8 @@ logging = {
},
'color': {
'()': 'pecan.log.ColorFormatter',
'format':'%(asctime)s [%(padded_color_levelname)s] [%(name)s] [%(threadName)s] %(message)s',
'format': '%(asctime)s [%(padded_color_levelname)s] [%(name)s] [%(threadName)s] %(message)s',
'__force_dict__': True
}
}
}

View File

@@ -1,7 +1,7 @@
"""Get configuration module unittests."""
from rds.tests.controllers.v1.functional_test import FunctionalTest
from rds.controllers.v1.configuration import root
from mock import patch
from rds.controllers.v1.configuration import root
from rds.tests.controllers.v1.functional_test import FunctionalTest
class TestGetConfiguration(FunctionalTest):

View File

@@ -1,6 +1,5 @@
"""unittest get resource."""
from mock import patch
import rds.controllers.v1.resources.root as root
from rds.tests.controllers.v1.functional_test import FunctionalTest

View File

@@ -5,9 +5,9 @@ from rds.controllers.v1.base import ClientSideError
class Test(unittest.TestCase):
#Test the creation of ClientSideError
# Test the creation of ClientSideError
def test_ClientSideError(self):
error_str = "This is an error message"
clientSideError = ClientSideError(error=error_str)
self.assertEqual(clientSideError.msg, error_str)
self.assertEqual(clientSideError.code, 400)
self.assertEqual(clientSideError.code, 400)

View File

@@ -1,9 +1,7 @@
"""unittest get resource status."""
from mock import MagicMock
import rds.controllers.v1.status.get_resource as resource
from rds.services.model.region_resource_id_status import Model
from rds.services.model.region_resource_id_status import StatusModel
from rds.services.model.region_resource_id_status import Model, StatusModel
from rds.tests.controllers.v1.functional_test import FunctionalTest

View File

@@ -1,6 +1,5 @@
"""unittest for post resource."""
from mock import patch
import rds.controllers.v1.status.resource_status as resource
from rds.tests.controllers.v1.functional_test import FunctionalTest

View File

@@ -1,8 +1,5 @@
"""Logs module unittests."""
import logging
from rds.tests.controllers.v1.functional_test import FunctionalTest
from rds.controllers.v1.configuration import root
from mock import patch
class TestLogs(FunctionalTest):

View File

@@ -1,11 +1,12 @@
"""Base classes for API tests.
"""
import os
import unittest
import pecan
import pecan.testing
import unittest
from pecan.testing import load_test_app
import os
class FunctionalTest(unittest.TestCase):

View File

@@ -1,8 +1,8 @@
import unittest
import mock
from mock import patch
from rds.ordupdate import ord_notifier
import unittest
class MyResponse(object):
@@ -114,30 +114,13 @@ class MainTest(unittest.TestCase):
'(expected NotifyNotAcknowledgedError)')
except ord_notifier.NotifyNotAcknowledgedError:
pass
# @mock.patch.object(ord_notifier, 'conf')
# def test_notify_sanity(self, mock_conf):
# ord_notifier.requests.post = mock.MagicMock(
# return_value=MyResponse(ord_notifier.ACK_CODE, None))
# ord_notifier._notify(*("1", )*8)
# @mock.patch.object(ord_notifier, 'conf')
# def test_notify_not_acknowledged(self, mock_conf):
# ord_notifier.requests.post = mock.MagicMock(
# return_value=MyResponse(404, None))
#
# try:
# ord_notifier._notify(*("1", )*8)
# self.fail('notify() passed successfully'
# '(expected NotifyNotAcknowledgedError)')
# except ord_notifier.NotifyNotAcknowledgedError:
# pass
@mock.patch.object(ord_notifier, 'conf')
def test_notify_https_disabled_but_received(self, mock_conf):
ord_notifier.requests.post = validate_http_post
mock_conf.ordupdate.https_enabled = False
mock_conf.ordupdate.template_type = 'a'
ord_notifier._notify('https://127.0.0.1:1337', *("1", )*7)
ord_notifier._notify('https://127.0.0.1:1337', * ("1", ) * 7)
@mock.patch.object(ord_notifier, 'conf')
@mock.patch.object(ord_notifier.json, 'dumps')
@@ -158,22 +141,6 @@ class MainTest(unittest.TestCase):
self.assertRaises(ord_notifier.requests.exceptions.SSLError,
ord_notifier._notify, 'https://127.0.0.1:1337',
*("1",) * 7)
# @mock.patch.object(ord_notifier, 'conf')
# def test_notify_https_enabled_and_no_certificate(self, mock_conf):
# ord_notifier.requests.post = validate_https_post
# mock_conf.ordupdate.https_enabled = True
# mock_conf.ordupdate.cert_path = ''
# ord_notifier._notify('https://127.0.0.1:1337', *("1", )*7)
# @mock.patch.object(ord_notifier, 'conf')
# def test_notify_https_enabled_and_ssl_error(self, mock_conf):
# ord_notifier.requests.post = mock.MagicMock(
# side_effect=ord_notifier.requests.exceptions.SSLError('test'))
# mock_conf.ordupdate.https_enabled = True
# mock_conf.ordupdate.cert_path = ''
# self.assertRaises(ord_notifier.requests.exceptions.SSLError,
# ord_notifier._notify, 'https://127.0.0.1:1337',
# *("1", )*7)
@patch.object(ord_notifier.audit, 'audit')
@patch.object(ord_notifier, 'regionResourceIdStatus')
@@ -189,35 +156,6 @@ class MainTest(unittest.TestCase):
self.assertEqual(e.message, 'ORD of LCP %s not found' % (
'gigi', ))
#@patch.object(ord_notifier.audit, 'audit')
#@patch.object(ord_notifier, 'regionResourceIdStatus')
# @mock.patch.object(ord_notifier, 'conf')
# @mock.patch.object(ord_notifier.json, 'dumps')
#def test_main_sanity(self, mock_dumps, mock_conf, mock_region, mock_audit):
# ord_notifier.requests.get = mock.MagicMock(
# return_value=MyResponse(ord_notifier.OK_CODE,
# {ord_notifier.LCP_ID: 'gigi',
# ord_notifier.ORD_URL: 'test'}))
# ord_notifier.requests.post = mock.MagicMock(
# return_value=MyResponse(ord_notifier.ACK_CODE, None))
# ord_notifier.notify_ord('test', '1', '2', '3', '4', '5', '6', '7',
# '8', '')
# @patch.object(ord_notifier.audit, 'audit')
# @patch.object(ord_notifier, 'regionResourceIdStatus')
# @mock.patch.object(ord_notifier, 'conf')
# def test_main_sanity(self, mock_audit, mock_region, mock_conf):
# ord_notifier.requests.get = mock.MagicMock(
# return_value=MyResponse(ord_notifier.OK_CODE,
# {'regions': [{'endpoints': [
# {'publicurl': 'test',
# 'type': 'ord'}]}]}))
# ord_notifier.requests.post = mock.MagicMock(
# return_value=MyResponse(ord_notifier.ACK_CODE, None))
#ord_notifier.notify_ord('test', '1', '2', '3', '4', '5', '6', '7',
# '8', '')
@patch.object(ord_notifier.audit, 'audit')
@patch.object(ord_notifier, 'regionResourceIdStatus')
@mock.patch.object(ord_notifier, 'conf')

View File

@@ -2,16 +2,16 @@
import unittest
from mock import patch
from rds.services import resource as ResourceService
from rds.services.model.region_resource_id_status import Model, ResourceMetaData
from rds.services.model.region_resource_id_status import StatusModel
from rds.services.model.region_resource_id_status import (Model,
ResourceMetaData,
StatusModel)
result = Model(
status="success", timestamp="123456789", region="name",
transaction_id=5, resource_id="1",
ord_notifier="", err_msg="123", err_code="12", operation="create",
resource_extra_metadata=[ResourceMetaData(checksum=1,virtual_size=2,size=3)]
resource_extra_metadata=[ResourceMetaData(checksum=1, virtual_size=2, size=3)]
)
uuid = "uuid-12345"
@@ -26,13 +26,13 @@ class InputData(object):
external_transaction_id=""):
"""init function.
:param resource_id:
:param resource_type:
:param targets:
:param operation:
:param transaction_id:
:param model:
:param external_transaction_id:
: param resource_id:
: param resource_type:
: param targets:
: param operation:
: param transaction_id:
: param model:
: param external_transaction_id:
"""
self.resource_id = resource_id
self.targets = targets
@@ -298,17 +298,17 @@ jsondata = {
"ram": "10",
"keypairs": "10",
"injected_files": "10"
},
},
"storage": {"gigabytes": "10",
"snapshots": "10",
"volumes": "10"
},
"network":{
"router": "10",
"floatingip": "10",
"port": "10",
"network": "10",
"subnet": "10"
"network": {
"router": "10",
"floatingip": "10",
"port": "10",
"network": "10",
"subnet": "10"
}}],
"users":
[
@@ -552,64 +552,64 @@ targets = [{'users': [{'id': 'userId1', 'roles': ['admin', 'other']},
'floatingip': '10'}}]}]
json_data_image = {
"internal_id":1,
"id":"uuu1id12-uuid-uuid-uuid",
"name":"Ubuntu",
"enabled": 1,
"protected": 1,
"url": "https://mirrors.it.att.com/images/image-name",
"visibility": "public",
"disk_format": "raw",
"container_format": "bare",
"min_disk":2,
"min_ram":0,
"regions":[
{
"name":"North",
"type":"single",
"action": "delete",
"image_internal_id":1
},
{
"name":"North",
"action": "create",
"type":"single",
"image_internal_id":1
}
],
"image_properties":[
{
"key_name":"Key1",
"key_value":"Key1.value",
"image_internal_id":1
},
{
"key_name":"Key2",
"key_value":"Key2.value",
"image_internal_id":1
}
],
"image_tenant":[
{
"tenant_id":"abcd-efgh-ijkl-4567",
"image_internal_id":1
},
{
"tenant_id":"abcd-efgh-ijkl-4567",
"image_internal_id":1
}
],
"image_tags":[
{
"tag":"abcd-efgh-ijkl-4567",
"image_internal_id":1
},
{
"tag":"abcd-efgh-ijkl-4567",
"image_internal_id":1
}
],
"status":"complete",
"internal_id": 1,
"id": "uuu1id12-uuid-uuid-uuid",
"name": "Ubuntu",
"enabled": 1,
"protected": 1,
"url": "https://mirrors.it.att.com/images/image-name",
"visibility": "public",
"disk_format": "raw",
"container_format": "bare",
"min_disk": 2,
"min_ram": 0,
"regions": [
{
"name": "North",
"type": "single",
"action": "delete",
"image_internal_id": 1
},
{
"name": "North",
"action": "create",
"type": "single",
"image_internal_id": 1
}
],
"image_properties": [
{
"key_name": "Key1",
"key_value": "Key1.value",
"image_internal_id": 1
},
{
"key_name": "Key2",
"key_value": "Key2.value",
"image_internal_id": 1
}
],
"image_tenant": [
{
"tenant_id": "abcd-efgh-ijkl-4567",
"image_internal_id": 1
},
{
"tenant_id": "abcd-efgh-ijkl-4567",
"image_internal_id": 1
}
],
"image_tags": [
{
"tag": "abcd-efgh-ijkl-4567",
"image_internal_id": 1
},
{
"tag": "abcd-efgh-ijkl-4567",
"image_internal_id": 1
}
],
"status": "complete",
}
input_data_resource = {'resource_id': '1e24981a-fa51-11e5-86aa-5e5517507c66',
@@ -692,44 +692,46 @@ input_data_resource = {'resource_id': '1e24981a-fa51-11e5-86aa-5e5517507c66',
'operation': 'create',
'transaction_id': ''}
expected_image_input_data = {'resource_id': 'uuu1id12-uuid-uuid-uuid',
'targets': [
{'action': 'delete', 'image_internal_id': 1,
'type': 'single', 'name': 'North'},
{'action': 'create', 'image_internal_id': 1,
'type': 'single', 'name': 'North'}],
'resource_type': 'image',
'model': {'status': 'complete', 'name': 'Ubuntu',
'internal_id': 1,
'url': 'https://mirrors.it.att.com/images/image-name',
'disk_format': 'raw', 'min_ram': 0,
'enabled': 1, 'visibility': 'public',
'image_tags': [{'image_internal_id': 1,
'tag': 'abcd-efgh-ijkl-4567'},
{'image_internal_id': 1,
'tag': 'abcd-efgh-ijkl-4567'}],
'regions': [{'action': 'delete',
'image_internal_id': 1,
'type': 'single',
'name': 'North'},
{'action': 'create',
'image_internal_id': 1,
'type': 'single',
'name': 'North'}],
'image_properties': [
{'key_name': 'Key1',
'key_value': 'Key1.value',
'image_internal_id': 1},
{'key_name': 'Key2',
'key_value': 'Key2.value',
'image_internal_id': 1}],
'protected': 1, 'image_tenant': [
{'tenant_id': 'abcd-efgh-ijkl-4567',
'image_internal_id': 1},
{'tenant_id': 'abcd-efgh-ijkl-4567',
'image_internal_id': 1}],
'container_format': 'bare',
'min_disk': 2,
'id': 'uuu1id12-uuid-uuid-uuid'},
'external_transaction_id': 'uuid-12345',
'operation': 'create', 'transaction_id': ''}
expected_image_input_data = {
'resource_id': 'uuu1id12-uuid-uuid-uuid',
'targets': [
{
'action': 'delete', 'image_internal_id': 1,
'type': 'single', 'name': 'North'},
{
'action': 'create', 'image_internal_id': 1,
'type': 'single', 'name': 'North'}],
'resource_type': 'image',
'model': {
'status': 'complete', 'name': 'Ubuntu',
'internal_id': 1,
'url': 'https://mirrors.it.att.com/images/image-name',
'disk_format': 'raw', 'min_ram': 0,
'enabled': 1, 'visibility': 'public',
'image_tags': [
{'image_internal_id': 1, 'tag': 'abcd-efgh-ijkl-4567'},
{'image_internal_id': 1, 'tag': 'abcd-efgh-ijkl-4567'}],
'regions': [
{
'action': 'delete', 'image_internal_id': 1,
'type': 'single', 'name': 'North'},
{
'action': 'create', 'image_internal_id': 1,
'type': 'single', 'name': 'North'}],
'image_properties': [
{
'key_name': 'Key1',
'key_value': 'Key1.value',
'image_internal_id': 1},
{
'key_name': 'Key2',
'key_value': 'Key2.value',
'image_internal_id': 1}],
'protected': 1, 'image_tenant': [
{'tenant_id': 'abcd-efgh-ijkl-4567', 'image_internal_id': 1},
{'tenant_id': 'abcd-efgh-ijkl-4567', 'image_internal_id': 1}],
'container_format': 'bare',
'min_disk': 2,
'id': 'uuu1id12-uuid-uuid-uuid'},
'external_transaction_id': 'uuid-12345',
'operation': 'create', 'transaction_id': ''}

View File

@@ -2,13 +2,13 @@
import unittest
import yaml
from mock import patch
from mock import patch
from rds.services import yaml_customer_builder as CustomerBuild
alldata = {
'uuid': '1e24981a-fa51-11e5-86aa-5e5517507c66',
'metadata': [{'my_server_name': 'Apache1'},{'ocx_cust': '123456889'}],
'metadata': [{'my_server_name': 'Apache1'}, {'ocx_cust': '123456889'}],
'default_region': {'users': [{'id': 'userId1zzzz',
'roles': ['adminzzzz', 'otherzzzzz']},
{'id': 'userId2zzz',

View File

@@ -1,9 +1,10 @@
"""flavor unittest module."""
from mock import patch
from rds.services import yaml_flavor_bulder as FlavorBuild
import unittest
import yaml
from mock import patch
from rds.services import yaml_flavor_bulder as FlavorBuild
alldata = {'status': 'complete', 'series': 'P2',
'description': 'First flavor for AMAR',

View File

@@ -1,45 +1,60 @@
import unittest
import yaml
from mock import patch
from rds.services import yaml_image_builder as ImageBuild
import yaml
import datetime
json_input = {'status': 'complete', 'name': 'Ubuntu', 'internal_id': 1,
'url': 'https://mirrors.it.att.com/images/image-name',
'disk_format': 'raw', 'min_ram': 0, 'enabled': 1,
'visibility': 'public', 'owner': 'unknown', 'image_tags': [
json_input = {
'status': 'complete', 'name': 'Ubuntu', 'internal_id': 1,
'url': 'https://mirrors.it.att.com/images/image-name',
'disk_format': 'raw', 'min_ram': 0, 'enabled': 1,
'visibility': 'public', 'owner': 'unknown', 'image_tags': [
{'image_internal_id': 1, 'tag': 'abcd-efgh-ijkl-4567'},
{'image_internal_id': 1, 'tag': 'abcd-efgh-ijkl-4567'}], 'regions': [
{'action': 'delete', 'image_internal_id': 1, 'type': 'single',
'name': 'North'},
{'action': 'create', 'image_internal_id': 1, 'type': 'single',
'name': 'North'}], 'image_properties': [
{'key_name': 'Key1', 'key_value': 'Key1.value',
'image_internal_id': 1},
{'key_name': 'Key2', 'key_value': 'Key2.value',
'image_internal_id': 1}], 'protected': 1, 'customers': [
{'image_internal_id': 1, 'tag': 'abcd-efgh-ijkl-4567'}],
'regions': [
{
'action': 'delete', 'image_internal_id': 1,
'type': 'single', 'name': 'North'},
{
'action': 'create', 'image_internal_id': 1,
'type': 'single', 'name': 'North'}],
'image_properties': [
{
'key_name': 'Key1', 'key_value': 'Key1.value',
'image_internal_id': 1},
{
'key_name': 'Key2', 'key_value': 'Key2.value',
'image_internal_id': 1}],
'protected': 1,
'customers': [
{'customer_id': 'abcd-efgh-ijkl-4567', 'image_id': 1},
{'customer_id': 'abcd-efgh-ijkl-4567', 'image_id': 1}],
'container_format': 'bare', 'min_disk': 2,
'id': 'uuu1id12-uuid-uuid-uuid'}
'container_format': 'bare', 'min_disk': 2,
'id': 'uuu1id12-uuid-uuid-uuid'}
region = {'action': 'delete', 'image_internal_id': 1, 'type': 'single',
'name': 'North'}
yaml_output = {'description': 'yaml file for region - North',
'resources': {'glance_image': {'properties': {'container_format': 'bare',
'disk_format': 'raw',
'is_public': True,
'copy_from': 'https://mirrors.it.att.com/images/image-name',
'min_disk': 2,
'min_ram': 0,
'name': 'North',
'owner': 'unknown',
'protected': True,
'tenants': ['abcd-efgh-ijkl-4567', 'abcd-efgh-ijkl-4567']},
'type': 'OS::Glance::Image2'}},
'heat_template_version': '2015-1-1',
'outputs': {'glance_image_id': {'value': {'get_resource': 'glance_image'}}}}
yaml_output = {
'description': 'yaml file for region - North',
'resources': {
'glance_image': {
'properties': {
'container_format': 'bare',
'disk_format': 'raw',
'is_public': True,
'copy_from': 'https://mirrors.it.att.com/images/image-name',
'min_disk': 2,
'min_ram': 0,
'name': 'North',
'owner': 'unknown',
'protected': True,
'tenants': ['abcd-efgh-ijkl-4567', 'abcd-efgh-ijkl-4567']},
'type': 'OS::Glance::Image2'}},
'heat_template_version': '2015-1-1',
'outputs': {'glance_image_id': {'value': {'get_resource': 'glance_image'}}}
}
class CreateImage(unittest.TestCase):

View File

@@ -1,9 +1,8 @@
from rds.tests import config as conf
import mock
import time
import unittest
import mock
from rds.services import region_resource_id_status
from rds.tests import config as conf
class MyResult(object):

View File

@@ -1,10 +1,6 @@
import subprocess
import unittest
import mock
from mock import patch
from rds.sot.git_sot import git_base
from rds.sot.git_sot.git_base import BaseGit, GitResetError
from rds.sot.git_sot.git_base import BaseGit
class BaseGitTests(unittest.TestCase):
@@ -60,4 +56,3 @@ class BaseGitTests(unittest.TestCase):
with self.assertRaises(NotImplementedError):
base_git = BaseGit()
base_git.validate_git()

View File

@@ -22,4 +22,4 @@ class GitFactoryTests(unittest.TestCase):
def test_get_sot_no_sot_type(self):
"""Test that when given unknown type, exception raised"""
with self.assertRaises(RuntimeError):
git_factory.get_git_impl("unknown")
git_factory.get_git_impl("unknown")

View File

@@ -1,11 +1,10 @@
import mock
from mock import patch
import unittest
import mock
from mock import patch
from rds.sot.git_sot import git_gittle
from rds.sot.git_sot.git_gittle import GitGittle
from rds.sot.git_sot.git_base import GitInitError, GitUploadError
from rds.sot.git_sot.git_gittle import GitGittle
class GitGittleTests(unittest.TestCase):
@@ -53,4 +52,3 @@ class GitGittleTests(unittest.TestCase):
self.my_git.repo = mock.MagicMock()
self.my_git.repo.commit = mock.MagicMock(side_effect=Exception("Failed to commit"))
self.assertRaises(GitUploadError, self.my_git.git_upload_changes)

View File

@@ -1,8 +1,8 @@
"""Unittest module for git_native."""
import mock
from mock import patch
import unittest
import mock
from mock import patch
from rds.sot.git_sot import git_native
from rds.sot.git_sot.git_native import GitNativeError, GitValidateError
@@ -82,11 +82,11 @@ class GitNativeTest(unittest.TestCase):
@patch.object(git_native.subprocess, 'Popen')
@patch.object(git_native.GitNative, '_git_config',
side_effect=GitNativeError("Could not write to file"))
def test_git_native_validate_git_config_fail(self, conf,mock_popen, result):
def test_git_native_validate_git_config_fail(self, conf, mock_popen, result):
"""Test that no exception is raised when calling git_init.aein"""
my_pipe = mock.MagicMock()
my_pipe.communicate = mock.MagicMock(return_value=('1', '2',))
mock_popen.return_value = my_pipe
test_git = git_native.GitNative()
with self.assertRaises(GitValidateError):
test_git.validate_git()
test_git.validate_git()

View File

@@ -1,33 +1,32 @@
import os
import mock
import unittest
import threading
import unittest
import mock
from mock import patch
from rds.sot.git_sot import git_sot as sot
from rds.sot.base_sot import SoTError
from rds.sot.git_sot.git_base import GitUploadError, GitInitError, GitResetError
from rds.sot.git_sot.git_base import GitValidateError
from rds.sot.git_sot.git_base import (GitInitError, GitResetError,
GitUploadError, GitValidateError)
from rds.sot.git_sot import git_sot as sot
from rds.sot import sot_factory
from rds.tests import config as conf
lock = mock.MagicMock()
resource = {
"operation": "create",
"region_id": '1',
"resource_type": '2',
"resource_name": '3',
"template_data": '4'
"operation": "create",
"region_id": '1',
"resource_type": '2',
"resource_name": '3',
"template_data": '4'
}
resource_delete = {
"operation": "delete",
"region_id": '1',
"resource_type": '2',
"resource_name": '3',
"template_data": '4'
"operation": "delete",
"region_id": '1',
"resource_type": '2',
"resource_name": '3',
"template_data": '4'
}
@@ -43,15 +42,12 @@ class GitSoTTest(unittest.TestCase):
git_factory = mock.MagicMock()
git_factory.get_git_impl = mock.MagicMock()
##################
### update_sot ###
##################
# update_sot
@patch.object(sot, 'init_git', side_effect=GitInitError("Failed to initialize Git"))
def test_git_sot_update_sot_init_git_fail(self, result):
"""" init_git fails and raise exception"""
try:
sot.update_sot("", lock, '1', '2', ['3','5'], '4', '6')
sot.update_sot("", lock, '1', '2', ['3', '5'], '4', '6')
except SoTError:
self.fail("Exception should have been handled inside method")
@@ -71,7 +67,7 @@ class GitSoTTest(unittest.TestCase):
def test_git_sot_update_sot_update_git_fail(self, git_repo, files_created, result, clean_result):
"""" update git fails and raise exception"""
try:
sot.update_sot("",lock, 'a', 'b', ['c', 'd'], 'e', 'f')
sot.update_sot("", lock, 'a', 'b', ['c', 'd'], 'e', 'f')
except GitUploadError:
self.fail("Exception should have been handled inside method")
@@ -288,5 +284,3 @@ class GitSoTTest(unittest.TestCase):
sot.validate_git(git_impl, lock)
except GitInitError:
self.fail("No exceptions should be thrown in this case")

View File

@@ -9,12 +9,10 @@ class BaseSoTTests(unittest.TestCase):
""" Check if creating an instance and calling save method fail"""
with self.assertRaises(Exception):
sot = BaseSoT()
sot.save_resource_to_sot('1','2',[])
sot.save_resource_to_sot('1', '2', [])
def test_base_sot_no_method_validate_implemented(self):
""" Check if creating an instance and calling validate method fail"""
with self.assertRaises(Exception):
sot = BaseSoT()
sot.validate_sot_state()

View File

@@ -1,8 +1,8 @@
import unittest
import mock
from rds.sot import sot_factory
import mock
from rds.sot.git_sot.git_sot import GitSoT
from rds.sot import sot_factory
class SoTFactoryTests(unittest.TestCase):
@@ -46,11 +46,3 @@ class SoTFactoryTests(unittest.TestCase):
self.assertEqual(GitSoT.commit_email, "6", "commit_email not match")
self.assertEqual(GitSoT.git_server_url, "7", "git_server_url not match")
self.assertEqual(GitSoT.git_type, "gittle", "git_type not match")

View File

@@ -1,11 +1,10 @@
"""Unittest module for mysql.region_resource_id_status."""
import time
import unittest
import mock
from mock import patch
from rds.storage.mysql import region_resource_id_status
import unittest
class RecordMock(object):
@@ -104,7 +103,7 @@ class MysqlRegionResourceIdStatusTest(unittest.TestCase):
'err_code')
@mock.patch.object(region_resource_id_status.db_session, 'EngineFacade',
return_value=MyFacade(True,False))
return_value=MyFacade(True, False))
def test_add_update_status_record_duplicate_entry(self, mock_db_session):
"""No exception is raised when trying to add a duplicate entry."""
my_connection = region_resource_id_status.Connection('url')
@@ -121,10 +120,10 @@ class MysqlRegionResourceIdStatusTest(unittest.TestCase):
@mock.patch.object(region_resource_id_status, 'StatusModel')
@patch.object(region_resource_id_status.Connection,
'get_timstamp_pair',
return_value=(1,2))
return_value=(1, 2))
@mock.patch.object(region_resource_id_status, 'Model')
@mock.patch.object(region_resource_id_status.db_session, 'EngineFacade',
return_value=MyFacade(False,False,True))
return_value=MyFacade(False, False, True))
def test_get_records_by_filter_args_no_records(self, mock_db_session,
mock_get_timestamp,
mock_model,
@@ -140,10 +139,11 @@ class MysqlRegionResourceIdStatusTest(unittest.TestCase):
@mock.patch.object(region_resource_id_status, 'Model')
@mock.patch.object(region_resource_id_status.db_session, 'EngineFacade',
return_value=MyFacade(False, True, True))
def test_get_records_by_filter_args_with_records(self, mock_db_session,
mock_get_timestamp,
mock_model,
mock_statusmodel):
def test_get_records_by_filter_args_with_records(self,
mock_db_session,
mock_get_timestamp,
mock_model,
mock_statusmodel):
"""Test that the function returns None when it got records."""
my_connection = region_resource_id_status.Connection('url')
my_connection.get_records_by_filter_args()
@@ -214,4 +214,3 @@ class MysqlRegionResourceIdStatusTest(unittest.TestCase):
mock_statusmodel):
my_connection = region_resource_id_status.Connection('url')
my_connection.get_records_by_resource_id_and_status('1', '2')

View File

@@ -8,7 +8,7 @@ class BaseStorageTests(unittest.TestCase):
def test_storage_add_status_record_not_implemented(self):
""" Check if creating an instance and calling add_update_status_record method fail"""
with self.assertRaises(Exception):
Base("").add_update_status_record('1','2','3','4','5','6','7','8')
Base("").add_update_status_record('1', '2', '3', '4', '5', '6', '7', '8')
def test_storage_get_records_by_resource_id_implemented(self):
""" Check if creating an instance and calling get_records_by_resource_id method fail"""

View File

@@ -1,9 +1,5 @@
"""UUID utils test module."""
import mock
from rds.utils import uuid_utils
import unittest
class MyResponse(object):
"""A test response class."""

View File

@@ -1,10 +1,11 @@
import logging
import requests
import json
from pecan import conf
from keystone_utils import tokens
from rds.proxies import rms_proxy as RmsService
import logging
import requests
from keystone_utils import tokens
from pecan import conf
from rds.proxies import rms_proxy as RmsService
enabled = False
mech_id = ""

View File

@@ -11,4 +11,3 @@ def set_utils_conf(conf):
"""Mock set_utils_conf function."""
pass

View File

@@ -1,9 +1,11 @@
"""module"""
import logging
import requests
from pecan import conf
from rds.services.base import ErrorMesage
from rds.proxies import ims_proxy
from rds.services.base import ErrorMesage
logger = logging.getLogger(__name__)
@@ -71,4 +73,3 @@ def add_rms_status_to_regions(resource_regions, resource_type):
# if region not found in rms
region['rms_status'] = "region_not_found_in_rms"
return resource_regions