Fix [H302] errors in heat/engine
Change-Id: Ib3e1a6f9d5e82e9fb29b000157b57dbc3883b42e
This commit is contained in:
parent
5596e63263
commit
03b3cf777e
@ -13,8 +13,8 @@
|
||||
|
||||
import collections
|
||||
import email
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime import multipart
|
||||
from email.mime import text
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
@ -201,7 +201,7 @@ class NovaClientPlugin(client_plugin.ClientPlugin):
|
||||
def make_subpart(content, filename, subtype=None):
|
||||
if subtype is None:
|
||||
subtype = os.path.splitext(filename)[0]
|
||||
msg = MIMEText(content, _subtype=subtype)
|
||||
msg = text.MIMEText(content, _subtype=subtype)
|
||||
msg.add_header('Content-Disposition', 'attachment',
|
||||
filename=filename)
|
||||
return msg
|
||||
@ -288,7 +288,7 @@ echo -e '%s\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers
|
||||
'cfn-boto-cfg', 'x-cfninitdata'))
|
||||
|
||||
subparts = [make_subpart(*args) for args in attachments]
|
||||
mime_blob = MIMEMultipart(_subparts=subparts)
|
||||
mime_blob = multipart.MIMEMultipart(_subparts=subparts)
|
||||
|
||||
return mime_blob.as_string()
|
||||
|
||||
|
@ -16,7 +16,6 @@ import itertools
|
||||
|
||||
from oslo.utils import encodeutils
|
||||
import six
|
||||
from six.moves import xrange
|
||||
|
||||
from heat.common import exception
|
||||
from heat.common.i18n import _
|
||||
@ -161,7 +160,7 @@ class Graph(collections.defaultdict):
|
||||
|
||||
This is a destructive operation for the graph.
|
||||
'''
|
||||
for iteration in xrange(len(graph)):
|
||||
for iteration in six.moves.xrange(len(graph)):
|
||||
for key, node in six.iteritems(graph):
|
||||
if not node:
|
||||
yield key
|
||||
|
@ -11,7 +11,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from heat.common.exception import StackValidationFailed
|
||||
from heat.common import exception
|
||||
from heat.common.i18n import _
|
||||
from heat.openstack.common import log as logging
|
||||
|
||||
@ -49,14 +49,14 @@ class ParameterGroups(object):
|
||||
parameters = group.get(PARAMETERS)
|
||||
|
||||
if parameters is None:
|
||||
raise StackValidationFailed(message=_(
|
||||
raise exception.StackValidationFailed(message=_(
|
||||
'Parameters must be provided for '
|
||||
'each Parameter Group.'))
|
||||
|
||||
for param in parameters:
|
||||
#Check if param has been added to a previous group
|
||||
if param in grouped_parameters:
|
||||
raise StackValidationFailed(message=_(
|
||||
raise exception.StackValidationFailed(message=_(
|
||||
'The %s parameter must be assigned to one '
|
||||
'Parameter Group only.') % param)
|
||||
else:
|
||||
@ -64,6 +64,6 @@ class ParameterGroups(object):
|
||||
|
||||
#Check that grouped parameter references a valid Parameter
|
||||
if param not in self.parameter_names:
|
||||
raise StackValidationFailed(message=_(
|
||||
raise exception.StackValidationFailed(message=_(
|
||||
'The Parameter name (%s) does not reference '
|
||||
'an existing parameter.') % param)
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
import base64
|
||||
import contextlib
|
||||
from datetime import datetime
|
||||
import datetime as dt
|
||||
from oslo.config import cfg
|
||||
from oslo.utils import encodeutils
|
||||
from oslo.utils import excutils
|
||||
@ -45,6 +45,8 @@ cfg.CONF.import_opt('action_retry_limit', 'heat.common.config')
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
datetime = dt.datetime
|
||||
|
||||
|
||||
def _register_class(resource_type, resource_class):
|
||||
resources.global_env().register_class(resource_type, resource_class)
|
||||
|
@ -22,7 +22,7 @@ from heat.engine import attributes
|
||||
from heat.engine import constraints
|
||||
from heat.engine import properties
|
||||
from heat.engine import resource
|
||||
from heat.engine.resources.vpc import VPC
|
||||
from heat.engine.resources import vpc
|
||||
from heat.openstack.common import log as logging
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@ -91,9 +91,10 @@ class ElasticIp(resource.Resource):
|
||||
"""Allocate a floating IP for the current tenant."""
|
||||
ips = None
|
||||
if self.properties[self.DOMAIN]:
|
||||
from heat.engine.resources.internet_gateway import InternetGateway
|
||||
from heat.engine.resources import internet_gateway
|
||||
|
||||
ext_net = InternetGateway.get_external_network_id(self.neutron())
|
||||
ext_net = internet_gateway.InternetGateway.get_external_network_id(
|
||||
self.neutron())
|
||||
props = {'floating_network_id': ext_net}
|
||||
ips = self.neutron().create_floatingip({
|
||||
'floatingip': props})['floatingip']
|
||||
@ -249,7 +250,7 @@ class ElasticIpAssociation(resource.Resource):
|
||||
return port_id, port_rsrc
|
||||
|
||||
def _neutron_add_gateway_router(self, float_id, network_id):
|
||||
router = VPC.router_for_vpc(self.neutron(), network_id)
|
||||
router = vpc.VPC.router_for_vpc(self.neutron(), network_id)
|
||||
if router is not None:
|
||||
floatingip = self.neutron().show_floatingip(float_id)
|
||||
floating_net_id = \
|
||||
|
@ -13,8 +13,8 @@
|
||||
"""Utilities for Resources that use the OpenStack Nova API."""
|
||||
|
||||
import email
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime import multipart
|
||||
from email.mime import text
|
||||
import json
|
||||
from novaclient import exceptions as nova_exceptions
|
||||
import os
|
||||
@ -155,7 +155,7 @@ def build_userdata(resource, userdata=None, instance_user=None,
|
||||
def make_subpart(content, filename, subtype=None):
|
||||
if subtype is None:
|
||||
subtype = os.path.splitext(filename)[0]
|
||||
msg = MIMEText(content, _subtype=subtype)
|
||||
msg = text.MIMEText(content, _subtype=subtype)
|
||||
msg.add_header('Content-Disposition', 'attachment',
|
||||
filename=filename)
|
||||
return msg
|
||||
@ -243,7 +243,7 @@ echo -e '%s\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers
|
||||
'cfn-boto-cfg', 'x-cfninitdata'))
|
||||
|
||||
subparts = [make_subpart(*args) for args in attachments]
|
||||
mime_blob = MIMEMultipart(_subparts=subparts)
|
||||
mime_blob = multipart.MIMEMultipart(_subparts=subparts)
|
||||
|
||||
return mime_blob.as_string()
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
import random
|
||||
import string
|
||||
|
||||
from six.moves import xrange
|
||||
import six
|
||||
|
||||
from heat.common import exception
|
||||
from heat.common.i18n import _
|
||||
@ -170,7 +170,7 @@ class RandomString(resource.Resource):
|
||||
@staticmethod
|
||||
def _deprecated_random_string(sequence, length):
|
||||
rand = random.SystemRandom()
|
||||
return ''.join(rand.choice(sequence) for x in xrange(length))
|
||||
return ''.join(rand.choice(sequence) for x in six.moves.xrange(length))
|
||||
|
||||
def _generate_random_string(self, char_sequences, char_classes, length):
|
||||
random_string = ""
|
||||
|
@ -15,7 +15,7 @@ from heat.common.i18n import _
|
||||
from heat.engine import properties
|
||||
from heat.engine import resource
|
||||
from heat.engine.resources.neutron import neutron
|
||||
from heat.engine.resources.vpc import VPC
|
||||
from heat.engine.resources import vpc
|
||||
from heat.engine import support
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ class RouteTable(resource.Resource):
|
||||
return False
|
||||
|
||||
network_id = self.properties.get(self.VPC_ID)
|
||||
default_router = VPC.router_for_vpc(client, network_id)
|
||||
default_router = vpc.VPC.router_for_vpc(client, network_id)
|
||||
if default_router and default_router.get('external_gateway_info'):
|
||||
# the default router for the VPC is connected
|
||||
# to the external router, so do it for this too.
|
||||
@ -150,7 +150,7 @@ class SubnetRouteTableAssociation(resource.Resource):
|
||||
subnet = client.show_subnet(
|
||||
subnet_id)['subnet']
|
||||
network_id = subnet['network_id']
|
||||
return VPC.router_for_vpc(client, network_id)
|
||||
return vpc.VPC.router_for_vpc(client, network_id)
|
||||
|
||||
def handle_delete(self):
|
||||
client = self.client()
|
||||
|
@ -12,8 +12,7 @@
|
||||
# under the License.
|
||||
|
||||
from heat.common.i18n import _
|
||||
from heat.common.template_format import yaml
|
||||
from heat.common.template_format import yaml_dumper
|
||||
from heat.common import template_format
|
||||
from heat.engine import properties
|
||||
from heat.engine.resources.software_config import software_config
|
||||
from heat.engine import support
|
||||
@ -51,8 +50,8 @@ class CloudConfig(software_config.SoftwareConfig):
|
||||
}
|
||||
|
||||
def handle_create(self):
|
||||
cloud_config = yaml.dump(self.properties.get(
|
||||
self.CLOUD_CONFIG), Dumper=yaml_dumper)
|
||||
cloud_config = template_format.yaml.dump(self.properties.get(
|
||||
self.CLOUD_CONFIG), Dumper=template_format.yaml_dumper)
|
||||
props = {
|
||||
self.NAME: self.physical_resource_name(),
|
||||
self.CONFIG: '#cloud-config\n%s' % cloud_config,
|
||||
|
@ -12,8 +12,8 @@
|
||||
# under the License.
|
||||
|
||||
import email
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime import multipart
|
||||
from email.mime import text
|
||||
import os
|
||||
|
||||
from heat.common.i18n import _
|
||||
@ -127,7 +127,7 @@ class MultipartMime(software_config.SoftwareConfig):
|
||||
subtype = item.get(self.SUBTYPE, '')
|
||||
self._append_part(subparts, part, subtype, filename)
|
||||
|
||||
mime_blob = MIMEMultipart(_subparts=subparts)
|
||||
mime_blob = multipart.MIMEMultipart(_subparts=subparts)
|
||||
self.message = mime_blob.as_string()
|
||||
return self.message
|
||||
|
||||
@ -154,7 +154,8 @@ class MultipartMime(software_config.SoftwareConfig):
|
||||
|
||||
@staticmethod
|
||||
def _create_message(part, subtype, filename):
|
||||
msg = MIMEText(part, _subtype=subtype) if subtype else MIMEText(part)
|
||||
msg = (text.MIMEText(part, _subtype=subtype)
|
||||
if subtype else text.MIMEText(part))
|
||||
if filename:
|
||||
msg.add_header('Content-Disposition', 'attachment',
|
||||
filename=filename)
|
||||
|
@ -15,7 +15,7 @@ from heat.common.i18n import _
|
||||
from heat.engine import attributes
|
||||
from heat.engine import properties
|
||||
from heat.engine import resource
|
||||
from heat.engine.resources.vpc import VPC
|
||||
from heat.engine.resources import vpc
|
||||
|
||||
|
||||
class Subnet(resource.Resource):
|
||||
@ -94,7 +94,7 @@ class Subnet(resource.Resource):
|
||||
subnet = client.create_subnet({'subnet': props})['subnet']
|
||||
self.resource_id_set(subnet['id'])
|
||||
|
||||
router = VPC.router_for_vpc(self.neutron(), network_id)
|
||||
router = vpc.VPC.router_for_vpc(self.neutron(), network_id)
|
||||
if router:
|
||||
client.add_interface_router(
|
||||
router['id'],
|
||||
@ -109,7 +109,7 @@ class Subnet(resource.Resource):
|
||||
subnet_id = self.resource_id
|
||||
|
||||
try:
|
||||
router = VPC.router_for_vpc(self.neutron(), network_id)
|
||||
router = vpc.VPC.router_for_vpc(self.neutron(), network_id)
|
||||
if router:
|
||||
client.remove_interface_router(
|
||||
router['id'],
|
||||
|
@ -14,7 +14,7 @@
|
||||
import functools
|
||||
import itertools
|
||||
import sys
|
||||
from time import time as wallclock
|
||||
import time
|
||||
import types
|
||||
|
||||
import eventlet
|
||||
@ -31,6 +31,7 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
# Whether TaskRunner._sleep actually does an eventlet sleep when called.
|
||||
ENABLE_SLEEP = True
|
||||
wallclock = time.time
|
||||
|
||||
|
||||
def task_description(task):
|
||||
|
@ -40,7 +40,7 @@ from heat.engine import api
|
||||
from heat.engine import attributes
|
||||
from heat.engine import clients
|
||||
from heat.engine import environment
|
||||
from heat.engine.event import Event
|
||||
from heat.engine import event as evt
|
||||
from heat.engine import parameter_groups
|
||||
from heat.engine import properties
|
||||
from heat.engine import resources
|
||||
@ -1048,9 +1048,9 @@ class EngineService(service.Service):
|
||||
stacks[stack_id] = parser.Stack.load(cnxt, stack_id)
|
||||
return stacks[stack_id]
|
||||
|
||||
return [api.format_event(Event.load(cnxt,
|
||||
e.id, e,
|
||||
get_stack(e.stack_id)))
|
||||
return [api.format_event(evt.Event.load(cnxt,
|
||||
e.id, e,
|
||||
get_stack(e.stack_id)))
|
||||
for e in events]
|
||||
|
||||
def _authorize_stack_user(self, cnxt, stack, resource_name):
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
import collections
|
||||
import copy
|
||||
from datetime import datetime
|
||||
import datetime
|
||||
import re
|
||||
import warnings
|
||||
|
||||
@ -24,7 +24,6 @@ import six
|
||||
|
||||
from heat.common import context as common_context
|
||||
from heat.common import exception
|
||||
from heat.common.exception import StackValidationFailed
|
||||
from heat.common.i18n import _
|
||||
from heat.common.i18n import _LE
|
||||
from heat.common.i18n import _LI
|
||||
@ -36,11 +35,11 @@ from heat.engine import dependencies
|
||||
from heat.engine import environment
|
||||
from heat.engine import function
|
||||
from heat.engine.notification import stack as notification
|
||||
from heat.engine.parameter_groups import ParameterGroups
|
||||
from heat.engine import parameter_groups as param_groups
|
||||
from heat.engine import resource
|
||||
from heat.engine import resources
|
||||
from heat.engine import scheduler
|
||||
from heat.engine.template import Template
|
||||
from heat.engine import template as tmpl
|
||||
from heat.engine import update
|
||||
from heat.openstack.common import log as logging
|
||||
from heat.rpc import api as rpc_api
|
||||
@ -277,7 +276,7 @@ class Stack(collections.Mapping):
|
||||
@classmethod
|
||||
def _from_db(cls, context, stack, parent_resource=None, resolve_data=True,
|
||||
use_stored_context=False):
|
||||
template = Template.load(
|
||||
template = tmpl.Template.load(
|
||||
context, stack.raw_template_id, stack.raw_template)
|
||||
env = environment.Environment(stack.parameters)
|
||||
return cls(context, stack.name, template, env,
|
||||
@ -457,7 +456,7 @@ class Stack(collections.Mapping):
|
||||
self.parameters.validate(context=self.context)
|
||||
|
||||
# Validate Parameter Groups
|
||||
parameter_groups = ParameterGroups(self.t)
|
||||
parameter_groups = param_groups.ParameterGroups(self.t)
|
||||
parameter_groups.validate()
|
||||
|
||||
# Check duplicate names between parameters and resources
|
||||
@ -465,8 +464,8 @@ class Stack(collections.Mapping):
|
||||
|
||||
if dup_names:
|
||||
LOG.debug("Duplicate names %s" % dup_names)
|
||||
raise StackValidationFailed(message=_("Duplicate names %s") %
|
||||
dup_names)
|
||||
raise exception.StackValidationFailed(
|
||||
message=_("Duplicate names %s") % dup_names)
|
||||
|
||||
for res in self.dependencies:
|
||||
try:
|
||||
@ -476,27 +475,27 @@ class Stack(collections.Mapping):
|
||||
raise ex
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise StackValidationFailed(message=encodeutils.safe_decode(
|
||||
six.text_type(ex)))
|
||||
raise exception.StackValidationFailed(
|
||||
message=encodeutils.safe_decode(six.text_type(ex)))
|
||||
if result:
|
||||
raise StackValidationFailed(message=result)
|
||||
raise exception.StackValidationFailed(message=result)
|
||||
|
||||
for val in self.outputs.values():
|
||||
try:
|
||||
if not val or not val.get('Value'):
|
||||
message = _('Each Output must contain '
|
||||
'a Value key.')
|
||||
raise StackValidationFailed(message=message)
|
||||
raise exception.StackValidationFailed(message=message)
|
||||
function.validate(val.get('Value'))
|
||||
except AttributeError:
|
||||
message = _('Output validation error: '
|
||||
'Outputs must contain Output. '
|
||||
'Found a [%s] instead') % type(val)
|
||||
raise StackValidationFailed(message=message)
|
||||
raise exception.StackValidationFailed(message=message)
|
||||
except Exception as ex:
|
||||
reason = _('Output validation error: '
|
||||
'%s') % six.text_type(ex)
|
||||
raise StackValidationFailed(message=reason)
|
||||
raise exception.StackValidationFailed(message=reason)
|
||||
|
||||
def requires_deferred_auth(self):
|
||||
'''
|
||||
@ -638,7 +637,7 @@ class Stack(collections.Mapping):
|
||||
|
||||
@profiler.trace('Stack.check', hide_args=False)
|
||||
def check(self):
|
||||
self.updated_time = datetime.utcnow()
|
||||
self.updated_time = datetime.datetime.utcnow()
|
||||
checker = scheduler.TaskRunner(self.stack_task, self.CHECK,
|
||||
post_func=self.supports_check_action,
|
||||
aggregate_exceptions=True)
|
||||
@ -713,7 +712,7 @@ class Stack(collections.Mapping):
|
||||
Update will fail if it exceeds the specified timeout. The default is
|
||||
60 minutes, set in the constructor
|
||||
'''
|
||||
self.updated_time = datetime.utcnow()
|
||||
self.updated_time = datetime.datetime.utcnow()
|
||||
updater = scheduler.TaskRunner(self.update_task, newstack,
|
||||
event=event)
|
||||
updater()
|
||||
@ -1066,19 +1065,19 @@ class Stack(collections.Mapping):
|
||||
self.state_set(self.RESTORE, self.FAILED,
|
||||
"Can't restore snapshot from other stack")
|
||||
return
|
||||
self.updated_time = datetime.utcnow()
|
||||
self.updated_time = datetime.datetime.utcnow()
|
||||
|
||||
tmpl = Template(snapshot.data['template'])
|
||||
template = tmpl.Template(snapshot.data['template'])
|
||||
|
||||
for name, defn in tmpl.resource_definitions(self).iteritems():
|
||||
for name, defn in template.resource_definitions(self).iteritems():
|
||||
rsrc = resource.Resource(name, defn, self)
|
||||
data = snapshot.data['resources'].get(name)
|
||||
handle_restore = getattr(rsrc, 'handle_restore', None)
|
||||
if callable(handle_restore):
|
||||
defn = handle_restore(defn, data)
|
||||
tmpl.add_resource(defn, name)
|
||||
template.add_resource(defn, name)
|
||||
|
||||
newstack = self.__class__(self.context, self.name, tmpl, self.env,
|
||||
newstack = self.__class__(self.context, self.name, template, self.env,
|
||||
timeout_mins=self.timeout_mins,
|
||||
disable_rollback=self.disable_rollback)
|
||||
newstack.parameters.set_stack_id(self.identifier())
|
||||
|
@ -125,7 +125,8 @@ class StackResource(resource.Resource):
|
||||
parsed_child_template = child_template
|
||||
if isinstance(parsed_child_template, template.Template):
|
||||
parsed_child_template = parsed_child_template.t
|
||||
return parser.Template(parsed_child_template, files=self.stack.t.files)
|
||||
return parser.tmpl.Template(parsed_child_template,
|
||||
files=self.stack.t.files)
|
||||
|
||||
def _parse_nested_stack(self, stack_name, child_template, child_params,
|
||||
timeout_mins=None, adopt_data=None):
|
||||
|
@ -38,7 +38,7 @@ from heat.engine.clients.os import keystone
|
||||
from heat.engine.clients.os import nova
|
||||
from heat.engine import dependencies
|
||||
from heat.engine import environment
|
||||
from heat.engine.properties import Properties
|
||||
from heat.engine import properties
|
||||
from heat.engine import resource as res
|
||||
from heat.engine.resources import instance as instances
|
||||
from heat.engine import service
|
||||
@ -211,7 +211,7 @@ def get_wordpress_stack(stack_name, ctx):
|
||||
|
||||
def get_wordpress_stack_no_params(stack_name, ctx):
|
||||
t = template_format.parse(wp_template)
|
||||
template = parser.Template(t)
|
||||
template = parser.tmpl.Template(t)
|
||||
stack = parser.Stack(ctx, stack_name, template,
|
||||
environment.Environment({}))
|
||||
return stack
|
||||
@ -723,7 +723,7 @@ class StackServiceCreateUpdateDeleteTest(common.HeatTestCase):
|
||||
setup_mock_for_image_constraint(self.m, 'CentOS 5.2')
|
||||
self.m.ReplayAll()
|
||||
|
||||
resource.properties = Properties(
|
||||
resource.properties = properties.Properties(
|
||||
resource.properties_schema,
|
||||
{
|
||||
'ImageId': 'CentOS 5.2',
|
||||
@ -733,7 +733,7 @@ class StackServiceCreateUpdateDeleteTest(common.HeatTestCase):
|
||||
context=self.ctx)
|
||||
stack.validate()
|
||||
|
||||
resource.properties = Properties(
|
||||
resource.properties = properties.Properties(
|
||||
resource.properties_schema,
|
||||
{
|
||||
'KeyName': 'test',
|
||||
@ -989,7 +989,7 @@ class StackServiceCreateUpdateDeleteTest(common.HeatTestCase):
|
||||
s = db_api.stack_get(self.ctx, sid)
|
||||
|
||||
t = template_format.parse(wp_template_no_default)
|
||||
template = parser.Template(t)
|
||||
template = parser.tmpl.Template(t)
|
||||
env = environment.Environment({'parameters': with_params,
|
||||
'resource_registry': {'rsc': 'test'}})
|
||||
stack = parser.Stack(self.ctx, stack_name, template, env)
|
||||
|
@ -11,26 +11,25 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from sqlalchemy.dialects.mysql.base import MySQLDialect
|
||||
from sqlalchemy.dialects.sqlite.base import SQLiteDialect
|
||||
from sqlalchemy.dialects.mysql import base as mysql_base
|
||||
from sqlalchemy.dialects.sqlite import base as sqlite_base
|
||||
from sqlalchemy import types
|
||||
import testtools
|
||||
|
||||
from heat.db.sqlalchemy.types import Json
|
||||
from heat.db.sqlalchemy.types import LongText
|
||||
from heat.db.sqlalchemy import types as db_types
|
||||
|
||||
|
||||
class LongTextTest(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(LongTextTest, self).setUp()
|
||||
self.sqltype = LongText()
|
||||
self.sqltype = db_types.LongText()
|
||||
|
||||
def test_load_dialect_impl(self):
|
||||
dialect = MySQLDialect()
|
||||
dialect = mysql_base.MySQLDialect()
|
||||
impl = self.sqltype.load_dialect_impl(dialect)
|
||||
self.assertNotEqual(types.Text, type(impl))
|
||||
dialect = SQLiteDialect()
|
||||
dialect = sqlite_base.SQLiteDialect()
|
||||
impl = self.sqltype.load_dialect_impl(dialect)
|
||||
self.assertEqual(types.Text, type(impl))
|
||||
|
||||
@ -39,7 +38,7 @@ class JsonTest(testtools.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(JsonTest, self).setUp()
|
||||
self.sqltype = Json()
|
||||
self.sqltype = db_types.Json()
|
||||
|
||||
def test_process_bind_param(self):
|
||||
dialect = None
|
||||
|
@ -11,7 +11,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from datetime import datetime
|
||||
import datetime
|
||||
import six
|
||||
import uuid
|
||||
|
||||
@ -109,9 +109,9 @@ class StackResourceTest(common.HeatTestCase):
|
||||
resource._register_class('GenericResource',
|
||||
generic_rsrc.GenericResource)
|
||||
self.ws_resname = "provider_resource"
|
||||
t = parser.Template({'HeatTemplateFormatVersion': '2012-12-12',
|
||||
'Resources':
|
||||
{self.ws_resname: ws_res_snippet}})
|
||||
t = parser.tmpl.Template(
|
||||
{'HeatTemplateFormatVersion': '2012-12-12',
|
||||
'Resources': {self.ws_resname: ws_res_snippet}})
|
||||
self.parent_stack = parser.Stack(utils.dummy_context(), 'test_stack',
|
||||
t, stack_id=str(uuid.uuid4()),
|
||||
user_creds_id='uc123',
|
||||
@ -407,7 +407,8 @@ class StackResourceTest(common.HeatTestCase):
|
||||
new_templ = self.simple_template.copy()
|
||||
inst_snippet = new_templ["Resources"]["WebServer"].copy()
|
||||
new_templ["Resources"]["WebServer2"] = inst_snippet
|
||||
self.parent_resource.updated_time = datetime(2014, 10, 24, 15, 40)
|
||||
self.parent_resource.updated_time = \
|
||||
datetime.datetime(2014, 10, 24, 15, 40)
|
||||
|
||||
updater = self.parent_resource.update_with_template(
|
||||
new_templ, {})
|
||||
|
@ -20,7 +20,7 @@ import mock
|
||||
import six
|
||||
from swiftclient import client as swiftclient_client
|
||||
from swiftclient import exceptions as swiftclient_exceptions
|
||||
from testtools.matchers import MatchesRegex
|
||||
from testtools import matchers
|
||||
|
||||
from heat.common import exception
|
||||
from heat.common import template_format
|
||||
@ -83,7 +83,7 @@ obj_header = {
|
||||
|
||||
def create_stack(template, stack_id=None):
|
||||
tmpl = template_format.parse(template)
|
||||
template = stack.Template(tmpl)
|
||||
template = stack.tmpl.Template(tmpl)
|
||||
ctx = utils.dummy_context(tenant_id='test_tenant')
|
||||
st = stack.Stack(ctx, 'test_st', template,
|
||||
environment.Environment(),
|
||||
@ -143,7 +143,7 @@ class SwiftSignalHandleTest(common.HeatTestCase):
|
||||
"\?temp_url_sig=[0-9a-f]{40}&temp_url_expires=[0-9]{10}"
|
||||
% st.id)
|
||||
res_id = st.resources['test_wait_condition_handle'].resource_id
|
||||
self.assertThat(res_id, MatchesRegex(regexp))
|
||||
self.assertThat(res_id, matchers.MatchesRegex(regexp))
|
||||
|
||||
# Since the account key is mocked out above
|
||||
self.assertFalse(mock_swift_object.post_account.called)
|
||||
@ -707,7 +707,7 @@ class SwiftSignalTest(common.HeatTestCase):
|
||||
'test_st-test_wait_condition_handle-abcdefghijkl\?temp_'
|
||||
'url_sig=[0-9a-f]{40}&temp_url_expires=[0-9]{10}') % st.id
|
||||
self.assertThat(handle.FnGetAtt('endpoint'),
|
||||
MatchesRegex(expected))
|
||||
matchers.MatchesRegex(expected))
|
||||
|
||||
@mock.patch.object(swift.SwiftClientPlugin, '_create')
|
||||
@mock.patch.object(resource.Resource, 'physical_resource_name')
|
||||
@ -737,7 +737,8 @@ class SwiftSignalTest(common.HeatTestCase):
|
||||
'AUTH_test_tenant/%s/test_st-test_wait_condition_'
|
||||
'handle-abcdefghijkl\?temp_url_sig=[0-9a-f]{40}&'
|
||||
'temp_url_expires=[0-9]{10}\'') % st.id
|
||||
self.assertThat(handle.FnGetAtt('curl_cli'), MatchesRegex(expected))
|
||||
self.assertThat(handle.FnGetAtt('curl_cli'),
|
||||
matchers.MatchesRegex(expected))
|
||||
|
||||
@mock.patch.object(swift.SwiftClientPlugin, '_create')
|
||||
@mock.patch.object(resource.Resource, 'physical_resource_name')
|
||||
|
Loading…
x
Reference in New Issue
Block a user