Pep8 and Ranger Image Build process update

Updated pep8 requirements and fixed resulting
codes to fix broken pep8 job.

Updated docker image build process to use roles
to ensure docker rather than using manual docker
install process to fix broken ranger image job.

Co-Authored-By: Jeremy Houser <jeremyhouser@protonmail.com>
Co-Authored-By: Chi Lo <cl566n@att.com>

Change-Id: I28df0a27e4b354dd53c17fbb1a9468cb7ff5bc16
This commit is contained in:
Gage Hugo 2020-09-23 11:32:58 -05:00
parent 8366b10bef
commit 68a500b3de
44 changed files with 287 additions and 307 deletions
orm
base_config.py
common/orm_common
orm_client/flavorgen
services
customer_manager/cms_rest
db_setup.py
flavor_manager/fms_rest
data
sql_alchemy
wsme
logger
logic
proxies
utils
image_manager/ims
region_manager
tests
functional/uuidgen
unit
cms
fms
rds/controllers/v1/resources
rms
controllers/v1/orm/resources
db_testing.py
test-requirements.txt
tools/zuul/playbooks
tox.ini

@ -215,8 +215,8 @@ else:
series_metadata = [s for s in sections if "_flavor_series_metadata" in s] series_metadata = [s for s in sections if "_flavor_series_metadata" in s]
for metadata in series_metadata: for metadata in series_metadata:
flavor = metadata.replace('_flavor_series_metadata', '') flavor = metadata.replace('_flavor_series_metadata', '')
flavor_dict = dict(set(config.items(metadata)) - flavor_dict = dict(set(config.items(metadata))
set(config.items('DEFAULT'))) - set(config.items('DEFAULT')))
FlavorGroup = [ FlavorGroup = [
cfg.DictOpt(flavor, cfg.DictOpt(flavor,
@ -349,8 +349,8 @@ conn = CONF.database.connection
db_connect = conn.replace("mysql+pymysql", "mysql") if conn else None db_connect = conn.replace("mysql+pymysql", "mysql") if conn else None
ssl_verify = CONF.ssl_verify ssl_verify = CONF.ssl_verify
token_auth_version = '3' if (CONF.keystone_authtoken.auth_version == token_auth_version = '3' if (CONF.keystone_authtoken.auth_version
'v3') else '2.0' == 'v3') else '2.0'
cert_path = CONF.ranger_agent_client_cert_path cert_path = CONF.ranger_agent_client_cert_path
https_enabled = CONF.ranger_agent_https_enabled https_enabled = CONF.ranger_agent_https_enabled

@ -50,8 +50,8 @@ class StatusModel(object):
def _get_aggregated_status(self): def _get_aggregated_status(self):
is_pending = False is_pending = False
for region in self.regions: for region in self.regions:
if (region.status == 'Error' and if (region.status == 'Error'
region.operation.strip() != 'delete'): and region.operation.strip() != 'delete'):
# If a region had an error, the aggregated status is 'Error' # If a region had an error, the aggregated status is 'Error'
return 'Error' return 'Error'
elif region.status == 'Submitted': elif region.status == 'Submitted':

@ -103,8 +103,8 @@ class ParseState(object):
""" """
for reduction, methname in self.reducers: for reduction, methname in self.reducers:
if (len(self.tokens) >= len(reduction) and if (len(self.tokens) >= len(reduction)
self.tokens[-len(reduction):] == reduction): and self.tokens[-len(reduction):] == reduction):
# Get the reduction method # Get the reduction method
meth = getattr(self, methname) meth = getattr(self, methname)

@ -54,8 +54,8 @@ class ResourceStatusRecord:
if records: if records:
for id, timestamp, region, status, transaction, resource, \ for id, timestamp, region, status, transaction, resource, \
notifier, err_msg, err_code, operation in records: notifier, err_msg, err_code, operation in records:
if (status == "Submitted" and if (status == "Submitted"
timestamp < ref_timestamp): and timestamp < ref_timestamp):
timestamp = timestamp timestamp = timestamp
status = "Error" status = "Error"
err_msg = "Status updated to 'Error'. " \ err_msg = "Status updated to 'Error'. " \

@ -34,6 +34,7 @@ def get_error_dict(status_code, transaction_id, message, error_details=""):
'details': error_details 'details': error_details
} }
# Default error messages # Default error messages
error_message = { error_message = {
400: {'message': 'Incompatible JSON body', 'type': 'Bad Request'}, 400: {'message': 'Incompatible JSON body', 'type': 'Bad Request'},

@ -19,6 +19,7 @@ def calculate_name(flavor):
return "{0}.c{1}r{2}d{3}".format(flavor['series'], flavor['vcpus'], return "{0}.c{1}r{2}d{3}".format(flavor['series'], flavor['vcpus'],
flavor['ram'], flavor['disk']) flavor['ram'], flavor['disk'])
data = { data = {
"series": "gv", "series": "gv",
"vcpus": "10", "vcpus": "10",

@ -43,5 +43,6 @@ def main(argv=None):
runner = CommandRunner() runner = CommandRunner()
runner.run(['serve', path + '/config.py']) runner.run(['serve', path + '/config.py'])
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -19,8 +19,8 @@ class RegionUserController(rest.RestController):
@wsexpose([str], str, str, str, rest_content_types='json') @wsexpose([str], str, str, str, rest_content_types='json')
def get(self, group_id, region_id, user_id): def get(self, group_id, region_id, user_id):
return ["This is groups region user controller for group id: " + return ["This is groups region user controller for group id: "
group_id] + group_id]
@wsexpose(RegionUserResultWrapper, str, str, body=[RegionUser], @wsexpose(RegionUserResultWrapper, str, str, body=[RegionUser],
rest_content_types='json', status_code=200) rest_content_types='json', status_code=200)

@ -143,8 +143,8 @@ class DataManager(object):
self.group_record = GroupRecord(self.session) self.group_record = GroupRecord(self.session)
return self.group_record return self.group_record
elif (record_name == "CustomerRegion" or elif (record_name == "CustomerRegion"
record_name == "customer_region"): or record_name == "customer_region"):
if not hasattr(self, "customer_region_record"): if not hasattr(self, "customer_region_record"):
self.customer_region_record = CustomerRegionRecord( self.customer_region_record = CustomerRegionRecord(
self.session) self.session)
@ -166,22 +166,22 @@ class DataManager(object):
self.groups_role_record = GroupsRoleRecord(self.session) self.groups_role_record = GroupsRoleRecord(self.session)
return self.groups_role_record return self.groups_role_record
elif (record_name == "GroupsCustomerRole" or elif (record_name == "GroupsCustomerRole"
record_name == "groups_customer_role"): or record_name == "groups_customer_role"):
if not hasattr(self, "groups_customer_role_record"): if not hasattr(self, "groups_customer_role_record"):
self.groups_customer_role_record = GroupsCustomerRoleRecord( self.groups_customer_role_record = GroupsCustomerRoleRecord(
self.session) self.session)
return self.groups_customer_role_record return self.groups_customer_role_record
elif (record_name == "GroupsDomainRole" or elif (record_name == "GroupsDomainRole"
record_name == "groups_domain_role"): or record_name == "groups_domain_role"):
if not hasattr(self, "groups_domain_role_record"): if not hasattr(self, "groups_domain_role_record"):
self.groups_domain_role_record = GroupsDomainRoleRecord( self.groups_domain_role_record = GroupsDomainRoleRecord(
self.session) self.session)
return self.groups_domain_role_record return self.groups_domain_role_record
elif (record_name == "GroupsUser" or elif (record_name == "GroupsUser"
record_name == "groups_user"): or record_name == "groups_user"):
if not hasattr(self, "groups_user_record"): if not hasattr(self, "groups_user_record"):
self.groups_user_record = GroupsUserRecord( self.groups_user_record = GroupsUserRecord(
self.session) self.session)

@ -36,8 +36,8 @@ class GroupsCustomerRoleRecord:
self.session.add(groups_customer_role) self.session.add(groups_customer_role)
except Exception as exception: except Exception as exception:
LOG.log_exception( LOG.log_exception(
"Failed to insert groups_customer_role" + "Failed to insert groups_customer_role"
str(groups_customer_role), exception) + str(groups_customer_role), exception)
raise raise
def get_customer_roles_by_region(self, def get_customer_roles_by_region(self,

@ -36,8 +36,8 @@ class GroupsDomainRoleRecord:
self.session.add(groups_domain_role) self.session.add(groups_domain_role)
except Exception as exception: except Exception as exception:
LOG.log_exception( LOG.log_exception(
"Failed to insert groups_domain_role" + "Failed to insert groups_domain_role"
str(groups_domain_role), exception) + str(groups_domain_role), exception)
raise raise
def get_domain_roles_by_region(self, def get_domain_roles_by_region(self,

@ -243,8 +243,8 @@ class GroupsRegion(Base, CMSBaseModel):
def get_group_users(self): def get_group_users(self):
group_users = [] group_users = []
for group_user in self.groups_users: for group_user in self.groups_users:
if (group_user.region_id == self.region_id and if (group_user.region_id == self.region_id
group_user.group_id == self.group_id): and group_user.group_id == self.group_id):
group_users.append(group_user) group_users.append(group_user)
return group_users return group_users

@ -1,6 +1,6 @@
from orm.services.customer_manager.cms_rest.data.sql_alchemy.cms_user_record import CmsUserRecord from orm.services.customer_manager.cms_rest.data.sql_alchemy.cms_user_record import CmsUserRecord
from orm.services.customer_manager.cms_rest.data.sql_alchemy.customer_record import CustomerRecord from orm.services.customer_manager.cms_rest.data.sql_alchemy.customer_record import CustomerRecord
from orm.services.customer_manager.cms_rest.data.sql_alchemy.models import * from orm.services.customer_manager.cms_rest.data.sql_alchemy.models import UserRole
from orm.services.customer_manager.cms_rest.data.sql_alchemy.region_record import RegionRecord from orm.services.customer_manager.cms_rest.data.sql_alchemy.region_record import RegionRecord
from orm.services.customer_manager.cms_rest.logger import get_logger from orm.services.customer_manager.cms_rest.logger import get_logger
from orm.services.customer_manager.cms_rest.logic.error_base import NotFound from orm.services.customer_manager.cms_rest.logic.error_base import NotFound
@ -12,7 +12,8 @@ class UserRoleRecord:
def __init__(self, session=None): def __init__(self, session=None):
# this model uses for the parameters for any access methods - not as instance of record in the table # this model uses for the parameters for any access methods,
# not as instance of record in the table
self.__user_role = UserRole() self.__user_role = UserRole()
# self.setRecordData(self.user_role) # self.setRecordData(self.user_role)
# self.user_role.Clear() # self.user_role.Clear()

@ -7,4 +7,5 @@ def get_logger(name):
return logger return logger
__all__ = ['get_logger'] __all__ = ['get_logger']

@ -91,9 +91,9 @@ class GroupLogic(object):
except Exception as ex: except Exception as ex:
if hasattr(ex, 'orig') and ex.orig[0] == 1062: if hasattr(ex, 'orig') and ex.orig[0] == 1062:
raise DuplicateEntryError( raise DuplicateEntryError(
'Error, duplicate entry, region ' + 'Error, duplicate entry, region '
region.name + + region.name
' already associated with group') + ' already associated with group')
raise ex raise ex
self.add_user_db(datamanager, region.users, self.add_user_db(datamanager, region.users,
@ -112,8 +112,8 @@ class GroupLogic(object):
default_user_exists =\ default_user_exists =\
[username for exist_user in existing_default_users [username for exist_user in existing_default_users
if exist_user.user.name == username and if exist_user.user.name == username
exist_user.domain_name == domain_value] and exist_user.domain_name == domain_value]
if not default_user_exists: if not default_user_exists:
# add user to cms_user table and group_users # add user to cms_user table and group_users
@ -135,8 +135,8 @@ class GroupLogic(object):
# in existing_default_users list # in existing_default_users list
region_user_exists =\ region_user_exists =\
[username for exist_user in all_existing_users [username for exist_user in all_existing_users
if exist_user.user.name == username and if exist_user.user.name == username
exist_user.domain_name == domain_value] and exist_user.domain_name == domain_value]
if not region_user_exists: if not region_user_exists:
# add user to cms_user table and group_users # add user to cms_user table and group_users
@ -508,8 +508,8 @@ class GroupLogic(object):
group_uuid, region_id, customer_id, role_id) group_uuid, region_id, customer_id, role_id)
if (not customer.check_groups_customer_role_exist( if (not customer.check_groups_customer_role_exist(
role_id, group_uuid) and role_id, group_uuid)
not domain.check_groups_domain_role_exist( and not domain.check_groups_domain_role_exist(
role_id, group_uuid)): role_id, group_uuid)):
groups_role.remove_role_from_group(group_uuid, role_id) groups_role.remove_role_from_group(group_uuid, role_id)
@ -545,8 +545,8 @@ class GroupLogic(object):
RdsProxy.send_group_dict(group_dict, transaction_id, "POST") RdsProxy.send_group_dict(group_dict, transaction_id, "POST")
else: else:
LOG.debug( LOG.debug(
"Group with no regions - wasn't send to RDS Proxy " + "Group with no regions - wasn't send to RDS Proxy "
str(group)) + str(group))
datamanager.commit() datamanager.commit()
@ -718,9 +718,9 @@ class GroupLogic(object):
ret_group = sql_group.to_wsme() ret_group = sql_group.to_wsme()
if sql_group.get_group_regions(): if sql_group.get_group_regions():
resp = requests.get(conf.api.rds_server.base + resp = requests.get(conf.api.rds_server.base
conf.api.rds_server.status + + conf.api.rds_server.status
sql_group.uuid, verify=conf.verify).json() + sql_group.uuid, verify=conf.verify).json()
for item in ret_group.regions: for item in ret_group.regions:
for status in resp['regions']: for status in resp['regions']:
if status['region'] == item.name: if status['region'] == item.name:

@ -16,17 +16,17 @@ class RdsProxy(object):
@staticmethod @staticmethod
def get_status(resource_id): def get_status(resource_id):
try: try:
LOG.debug( LOG.debug("Sending to RDS Server to get status: "
"Sending to RDS Server to get status: " + + conf.api.rds_server.base
conf.api.rds_server.base + conf.api.rds_server.status + + conf.api.rds_server.status
resource_id) + resource_id)
resp = requests.get( resp = requests.get(conf.api.rds_server.base
conf.api.rds_server.base + conf.api.rds_server.status + + conf.api.rds_server.status
resource_id, verify=conf.verify) + resource_id, verify=conf.verify)
LOG.debug( LOG.debug("Sending to RDS Server to get status: "
"Sending to RDS Server to get status: " + + conf.api.rds_server.base
conf.api.rds_server.base + + conf.api.rds_server.status
conf.api.rds_server.status + resource_id) + resource_id)
pp = pprint.PrettyPrinter(width=30) pp = pprint.PrettyPrinter(width=30)
pretty_text = pp.pformat(resp.json()) pretty_text = pp.pformat(resp.json())
LOG.debug("Response from RDS Server:\n" + pretty_text) LOG.debug("Response from RDS Server:\n" + pretty_text)
@ -95,8 +95,9 @@ class RdsProxy(object):
LOG.debug("Wrapper JSON before sending action: {0} to Rds " LOG.debug("Wrapper JSON before sending action: {0} to Rds "
"Proxy\n{1}".format(method, pretty_text)) "Proxy\n{1}".format(method, pretty_text))
LOG.info("Sending to RDS Server: " + LOG.info("Sending to RDS Server: "
conf.api.rds_server.base + conf.api.rds_server.resources) + conf.api.rds_server.base
+ conf.api.rds_server.resources)
wrapper_json = json.dumps(data) wrapper_json = json.dumps(data)
@ -175,8 +176,9 @@ class RdsProxy(object):
LOG.debug("Wrapper JSON before sending action: {0} to Rds " LOG.debug("Wrapper JSON before sending action: {0} to Rds "
"Proxy\n{1}".format(method, pretty_text)) "Proxy\n{1}".format(method, pretty_text))
LOG.info("Sending to RDS Server: " + conf.api.rds_server.base + LOG.info("Sending to RDS Server: "
conf.api.rds_server.resources) + conf.api.rds_server.base
+ conf.api.rds_server.resources)
wrapper_json = json.dumps(data) wrapper_json = json.dumps(data)

@ -16,7 +16,7 @@
from configparser import ConfigParser from configparser import ConfigParser
from oslo_config import cfg from oslo_config import cfg
import re import re
from sqlalchemy import * from sqlalchemy import create_engine
import sys import sys
CONF = cfg.CONF CONF = cfg.CONF
@ -106,14 +106,14 @@ def main(argv=None):
CONF.ranger_base + '/orm/services/id_generator/scripts/db_scripts/db_create.sql', CONF.ranger_base + '/orm/services/id_generator/scripts/db_scripts/db_create.sql',
CONF.ranger_base + '/orm/services/resource_distributor/scripts/db_scripts/create_db.sql', CONF.ranger_base + '/orm/services/resource_distributor/scripts/db_scripts/create_db.sql',
CONF.ranger_base + '/orm/services/region_manager/scripts/db_scripts/create_db.sql', CONF.ranger_base + '/orm/services/region_manager/scripts/db_scripts/create_db.sql',
CONF.ranger_base + CONF.ranger_base
'/orm/services/customer_manager/scripts/db_scripts/ranger_cms_create_db.sql', + '/orm/services/customer_manager/scripts/db_scripts/ranger_cms_create_db.sql',
CONF.ranger_base + CONF.ranger_base
'/orm/services/customer_manager/scripts/db_scripts/ranger_cms_update_db.sql', + '/orm/services/customer_manager/scripts/db_scripts/ranger_cms_update_db.sql',
CONF.ranger_base + CONF.ranger_base
'/orm/services/flavor_manager/scripts/db_scripts/ranger_fms_create_db.sql', + '/orm/services/flavor_manager/scripts/db_scripts/ranger_fms_create_db.sql',
CONF.ranger_base + CONF.ranger_base
'/orm/services/flavor_manager/scripts/db_scripts/ranger_fms_update_db.sql', + '/orm/services/flavor_manager/scripts/db_scripts/ranger_fms_update_db.sql',
CONF.ranger_base + '/orm/services/image_manager/scripts/db_scripts/create_db.sql' CONF.ranger_base + '/orm/services/image_manager/scripts/db_scripts/create_db.sql'
] ]

@ -34,8 +34,8 @@ class FlavorExtraSpecRecord:
try: try:
self.session.add(flavor_extra_specs) self.session.add(flavor_extra_specs)
except Exception as exception: except Exception as exception:
LOG.log_exception("Failed to insert FlavorExtraSpec" + LOG.log_exception("Failed to insert FlavorExtraSpec"
str(flavor_extra_specs), exception) + str(flavor_extra_specs), exception)
raise raise
def get_flavor_extra_spec(self, flavor_internal_id, key_name): def get_flavor_extra_spec(self, flavor_internal_id, key_name):

@ -33,8 +33,8 @@ class FlavorOptionRecord:
try: try:
self.session.add(flavor_option) self.session.add(flavor_option)
except Exception as exception: except Exception as exception:
LOG.log_exception("Failed to insert FlavorOption" + LOG.log_exception("Failed to insert FlavorOption"
str(flavor_option), exception) + str(flavor_option), exception)
raise raise
def get_flavor_option(self, flavor_internal_id, key_name): def get_flavor_option(self, flavor_internal_id, key_name):

@ -33,8 +33,8 @@ class FlavorTagRecord:
try: try:
self.session.add(flavor_tag) self.session.add(flavor_tag)
except Exception as exception: except Exception as exception:
LOG.log_exception("Failed to insert FlavorTag" + LOG.log_exception("Failed to insert FlavorTag"
str(flavor_tag), exception) + str(flavor_tag), exception)
raise raise
def get_flavor_extra_spec(self, flavor_internal_id, key_name): def get_flavor_extra_spec(self, flavor_internal_id, key_name):

@ -271,8 +271,8 @@ class Flavor(Model):
# validate series and set flavor vcpu and vram limits # validate series and set flavor vcpu and vram limits
requested_numa = [n for n in valid_numa if n in requested_numa = [n for n in valid_numa if n in
list(self.options.keys()) and list(self.options.keys())
self.options[n].lower() == 'true'] and self.options[n].lower() == 'true']
if requested_numa: if requested_numa:
vcpu_limit = int(series_metadata['vcpu_limit']) vcpu_limit = int(series_metadata['vcpu_limit'])
@ -314,8 +314,9 @@ class Flavor(Model):
if not self.ephemeral: if not self.ephemeral:
self.ephemeral = "0" self.ephemeral = "0"
elif (self.ephemeral and elif (self.ephemeral
int(self.ephemeral) not in list(range(0, ephemeral_limit + 1))): and int(self.ephemeral) not in
list(range(0, ephemeral_limit + 1))):
raise ErrorStatus(400, raise ErrorStatus(400,
"ephemeral value is out of range. Expected" "ephemeral value is out of range. Expected"
" range is 0-%5d(%2dTB)" % " range is 0-%5d(%2dTB)" %
@ -468,8 +469,8 @@ class Flavor(Model):
series_metadata['valid_options_numa'].split(',')] series_metadata['valid_options_numa'].split(',')]
option_numa = [n for n in valid_numa if n in option_numa = [n for n in valid_numa if n in
list(self.options.keys()) and list(self.options.keys())
self.options[n].lower() == 'true'] and self.options[n].lower() == 'true']
if not option_numa: if not option_numa:
es = db_models.FlavorExtraSpec( es = db_models.FlavorExtraSpec(
@ -487,8 +488,8 @@ class Flavor(Model):
series_metadata['valid_options_pci'].split(',')] series_metadata['valid_options_pci'].split(',')]
option_pci = [n for n in valid_pci if n in option_pci = [n for n in valid_pci if n in
list(self.options.keys()) and list(self.options.keys())
self.options[n].lower() == 'true'] and self.options[n].lower() == 'true']
if option_pci: if option_pci:
es = db_models.FlavorExtraSpec( es = db_models.FlavorExtraSpec(
@ -503,9 +504,9 @@ class Flavor(Model):
series_metadata['valid_options_thread'].split(',')] series_metadata['valid_options_thread'].split(',')]
option_thread = [n for n in valid_thread if n in option_thread = [n for n in valid_thread if n in
list(self.options.keys()) and list(self.options.keys())
self.options[n].lower() == 'true' and and self.options[n].lower() == 'true'
self.visibility.lower() == 'private'] and self.visibility.lower() == 'private']
if option_thread: if option_thread:
es = db_models.FlavorExtraSpec( es = db_models.FlavorExtraSpec(

@ -7,4 +7,5 @@ def get_logger(name):
return logger return logger
__all__ = ['get_logger'] __all__ = ['get_logger']

@ -134,8 +134,8 @@ def send_to_rds_if_needed(sql_flavor,
LOG.debug("Flavor is valid to send to RDS - sending to RDS Proxy ") LOG.debug("Flavor is valid to send to RDS - sending to RDS Proxy ")
rds_proxy.send_flavor(flavor_dict, transaction_id, http_action) rds_proxy.send_flavor(flavor_dict, transaction_id, http_action)
else: else:
LOG.debug("Flavor with no regions - wasn't sent to RDS Proxy " + LOG.debug("Flavor with no regions - wasn't sent to RDS Proxy "
str(sql_flavor)) + str(sql_flavor))
@di.dependsOn('data_manager') @di.dependsOn('data_manager')
@ -1054,8 +1054,8 @@ def calculate_name(flavor):
series_metadata if x.startswith("valid_options_")] series_metadata if x.startswith("valid_options_")]
options = [n for n in valid_options if n in options = [n for n in valid_options if n in
list(flavor.flavor.options.keys()) and list(flavor.flavor.options.keys())
flavor.flavor.options[n].lower() == 'true'] and flavor.flavor.options[n].lower() == 'true']
if 't0' in options and flavor.flavor.visibility.lower() != 'private': if 't0' in options and flavor.flavor.visibility.lower() != 'private':
options.remove('t0') options.remove('t0')

@ -19,8 +19,7 @@ def send_flavor(flavor_dict, transaction_id, action="put"):
# action can be "post" for creating flavor or "delete" for deleting flavor # action can be "post" for creating flavor or "delete" for deleting flavor
data = { data = {
"service_template": "service_template": {
{
"resource": { "resource": {
"resource_type": "flavor" "resource_type": "flavor"
}, },
@ -33,8 +32,7 @@ def send_flavor(flavor_dict, transaction_id, action="put"):
} }
data_to_display = { data_to_display = {
"service_template": "service_template": {
{
"resource": { "resource": {
"resource_type": "flavor" "resource_type": "flavor"
}, },

@ -88,6 +88,7 @@ def make_transid():
else: else:
return None return None
audit_setup = False audit_setup = False

@ -7,4 +7,5 @@ def get_logger(name):
return logger return logger
__all__ = ['get_logger'] __all__ = ['get_logger']

@ -19,8 +19,7 @@ def send_image(image_dict, transaction_id, action="put"):
# action can be "post" for creating image or "delete" for deleting image # action can be "post" for creating image or "delete" for deleting image
data = { data = {
"service_template": "service_template": {
{
"resource": { "resource": {
"resource_type": "image" "resource_type": "image"
}, },
@ -33,8 +32,7 @@ def send_image(image_dict, transaction_id, action="put"):
} }
data_to_display = { data_to_display = {
"service_template": "service_template": {
{
"resource": { "resource": {
"resource_type": "image" "resource_type": "image"
}, },
@ -45,6 +43,7 @@ def send_image(image_dict, transaction_id, action="put"):
} }
} }
} }
try: try:
pp = pprint.PrettyPrinter(width=30) pp = pprint.PrettyPrinter(width=30)
pretty_text = pp.pformat(data_to_display) pretty_text = pp.pformat(data_to_display)

@ -53,5 +53,6 @@ def main():
data_manager = DataManager(db_url, 3, 3) data_manager = DataManager(db_url, 3, 3)
load_csv2db(data_manager) load_csv2db(data_manager)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -27,5 +27,6 @@ def main():
data_manager = DataManager(db_url) data_manager = DataManager(db_url)
revert_csv2db(data_manager) revert_csv2db(data_manager)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -7,4 +7,5 @@ def get_logger(name):
return logger return logger
__all__ = ['get_logger'] __all__ = ['get_logger']

@ -37,7 +37,7 @@ class TestRootController(FunctionalTest):
resp = self.app.post('/v1/uuids') resp = self.app.post('/v1/uuids')
self.assertEqual(resp.status_int, 200) self.assertEqual(resp.status_int, 200)
body = json.loads(resp.body) body = json.loads(resp.body)
self.assertTrue(re.search('^[\dTZ.:-]+$', body['issued_at'])) self.assertTrue(re.search('^[\\dTZ.:-]+$', body['issued_at']))
self.assertEqual('', body['uuid_type']) self.assertEqual('', body['uuid_type'])
self.assertTrue(re.search('^[0-9a-f]+$', body['uuid'])) self.assertTrue(re.search('^[0-9a-f]+$', body['uuid']))
@ -47,7 +47,7 @@ class TestRootController(FunctionalTest):
params={'uuid_type': 'milkshake'}) params={'uuid_type': 'milkshake'})
self.assertEqual(resp.status_int, 200) self.assertEqual(resp.status_int, 200)
body = json.loads(resp.body) body = json.loads(resp.body)
self.assertTrue(re.search('^[\dTZ.:-]+$', body['issued_at'])) self.assertTrue(re.search('^[\\dTZ.:-]+$', body['issued_at']))
self.assertEqual('milkshake', body['uuid_type']) self.assertEqual('milkshake', body['uuid_type'])
# Same format as with no parameter # Same format as with no parameter
self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid'])) self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid']))
@ -56,7 +56,7 @@ class TestRootController(FunctionalTest):
params={'uuid': 1337, 'uuid_type': 'milkshake'}) params={'uuid': 1337, 'uuid_type': 'milkshake'})
self.assertEqual(resp.status_int, 200) self.assertEqual(resp.status_int, 200)
body = json.loads(resp.body) body = json.loads(resp.body)
self.assertTrue(re.search('^[\dTZ.:-]+$', body['issued_at'])) self.assertTrue(re.search('^[\\dTZ.:-]+$', body['issued_at']))
self.assertEqual('custId', body['uuid_type']) self.assertEqual('custId', body['uuid_type'])
# Same format as with no parameter # Same format as with no parameter
self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid'])) self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid']))
@ -98,7 +98,7 @@ class TestRootController(FunctionalTest):
expect_errors=True) expect_errors=True)
self.assertEqual(resp.status_int, 200) self.assertEqual(resp.status_int, 200)
body = json.loads(resp.body) body = json.loads(resp.body)
self.assertTrue(re.search('^[\dTZ.:-]+$', body['issued_at'])) self.assertTrue(re.search('^[\\dTZ.:-]+$', body['issued_at']))
self.assertEqual('custId', body['uuid_type']) self.assertEqual('custId', body['uuid_type'])
# Same format as with no parameter # Same format as with no parameter
self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid'])) self.assertTrue(re.search('^[0-9a-f-]+$', body['uuid']))

@ -444,8 +444,8 @@ RET_CUSTOMER_JSON = {
members='1', pools='1', nat_instance='1', route_table='1', vips='1', members='1', pools='1', nat_instance='1', route_table='1', vips='1',
loadbalancer='1', listener='1')] loadbalancer='1', listener='1')]
})]})], })]})],
"users": [Models.User(** "users": [Models.User(
{"id": "userId1", "role": ["admin", "other"]}) **{"id": "userId1", "role": ["admin", "other"]})
], ],
"defaultQuotas": [Models.Quota(**{ "defaultQuotas": [Models.Quota(**{
"compute": [Models.Compute(instances='1', key_pairs='1', ram='1', "compute": [Models.Compute(instances='1', key_pairs='1', ram='1',

@ -2,7 +2,9 @@ from orm.common.orm_common.injector import injector
from orm.common.orm_common.utils import utils from orm.common.orm_common.utils import utils
from orm.services.flavor_manager.fms_rest.data.sql_alchemy import db_models from orm.services.flavor_manager.fms_rest.data.sql_alchemy import db_models
from orm.services.flavor_manager.fms_rest.data.wsme import models from orm.services.flavor_manager.fms_rest.data.wsme import models
from orm.services.flavor_manager.fms_rest.data.wsme.models import * from orm.services.flavor_manager.fms_rest.data.wsme.models import (
ExtraSpecsWrapper, Flavor, FlavorWrapper,
Region, RegionWrapper, TagsWrapper, TenantWrapper)
from orm.services.flavor_manager.fms_rest.logic.error_base import NotFoundError from orm.services.flavor_manager.fms_rest.logic.error_base import NotFoundError
from orm.services.flavor_manager.fms_rest.logic import flavor_logic from orm.services.flavor_manager.fms_rest.logic import flavor_logic
from orm.tests.unit.fms import FunctionalTest from orm.tests.unit.fms import FunctionalTest
@ -156,7 +158,7 @@ class TestFlavorLogic(FunctionalTest):
get_extra_spec_needed = MagicMock() get_extra_spec_needed = MagicMock()
get_extra_spec_needed.get_extra_spec_needed.return_value = [extra_spec_needed] get_extra_spec_needed.get_extra_spec_needed.return_value = [extra_spec_needed]
mock_flavorwrapper.from_db_model.return_value = get_extra_spec_needed mock_flavorwrapper.from_db_model.return_value = get_extra_spec_needed
with self.assertRaises(ErrorStatus): with self.assertRaises(flavor_logic.ErrorStatus):
flavor_logic.delete_extra_specs(123, "transaction_id", "key1") flavor_logic.delete_extra_specs(123, "transaction_id", "key1")
@patch.object(flavor_logic, 'FlavorWrapper', return_value=MagicMock()) @patch.object(flavor_logic, 'FlavorWrapper', return_value=MagicMock())

@ -124,6 +124,7 @@ class TestCreateResource(FunctionalTest):
headers=headers, expect_errors=True) headers=headers, expect_errors=True)
assert response.status_int == 409 assert response.status_int == 409
good_data = { good_data = {
"service_template": { "service_template": {
"resource": { "resource": {

@ -3,16 +3,17 @@ import json
from unittest.mock import patch, MagicMock from unittest.mock import patch, MagicMock
from orm.services.region_manager.rms.controllers.v2.orm.resources import metadata from orm.services.region_manager.rms.controllers.v2.orm.resources import metadata
from orm.services.region_manager.rms.model.model import * from orm.services.region_manager.rms.model import model
from orm.tests.unit.rms import FunctionalTest from orm.tests.unit.rms import FunctionalTest
from wsme.exc import ClientSideError from wsme.exc import ClientSideError
result_inst = RegionData("1", "2", "3", "4", "5", "6", result_inst = model.RegionData(
"1", "2", "3", "4", "5", "6",
endpoints=[ endpoints=[
EndPoint("http://www.example.co.il", "url") model.EndPoint("http://www.example.co.il", "url")
], ],
address=Address("US", "NY", "HANEGEV", "AIRPORT_CITY", "5"), address=model.Address("US", "NY", "HANEGEV", "AIRPORT_CITY", "5"),
metadata={"key1": ["value1"], "key2": ["value2"]}) metadata={"key1": ["value1"], "key2": ["value2"]})
result_dict = {'status': '2', 'vlcpName': None, 'clli': '5', result_dict = {'status': '2', 'vlcpName': None, 'clli': '5',

@ -86,5 +86,6 @@ def main():
run_db_tests(data_manager) run_db_tests(data_manager)
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -2,7 +2,8 @@
# of appearance. Changing the order has an impact on the overall integration # of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 hacking>=3.0.1,<3.1.0 # Apache-2.0
pep257==0.7.0 # MIT License
bandit==1.6.2 # Apache-2.0 bandit==1.6.2 # Apache-2.0
coverage!=4.4,>=4.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0
openstackdocstheme>=1.18.1 openstackdocstheme>=1.18.1

@ -4,46 +4,9 @@
tasks: tasks:
- include_vars: vars.yaml - include_vars: vars.yaml
- name: Install Docker (Debian) - name: Ensure docker
when: ansible_os_family == 'Debian' include_role:
block: name: ensure-docker
- file:
path: "{{ item }}"
state: directory
with_items:
- /etc/docker/
- /etc/systemd/system/docker.service.d/
- /var/lib/docker/
- mount:
path: /var/lib/docker/
src: tmpfs
fstype: tmpfs
opts: size=25g
state: mounted
- copy: "{{ item }}"
with_items:
- content: "{{ docker_daemon | to_json }}"
dest: /etc/docker/daemon.json
- src: files/docker-systemd.conf
dest: /etc/systemd/system/docker.service.d/
- apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
- apt_repository:
repo: deb http://{{ zuul_site_mirror_fqdn }}/deb-docker bionic stable
- apt:
name: "{{ item }}"
allow_unauthenticated: True
with_items:
- docker-ce
- pip:
name: docker
version: 2.7.0
- iptables:
action: insert
chain: INPUT
in_interface: docker0
jump: ACCEPT
become: True
- name: Make images - name: Make images
when: not publish when: not publish

@ -66,6 +66,6 @@ commands = oslo-config-generator --config-file=tools/config/ranger-config-genera
[flake8] [flake8]
show-source = True show-source = True
ignore = H301,F821,H202,H101,H104,H238,H401,H405,E501,F811,F403,H233,F841,H903 ignore = H301,F821,H202,H101,H104,H238,H401,H405,E501,F811,F403,H233,F841,H903,W503
builtins = _ builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build