714d9eea4c
We want to be able to call is_not_found() or is_conflict() from the client plugin from the Resource class, regardless of what resource plugin is implementing the resource type. This is only possible when the default_client_name is set, which is optional for plugins to do. As a result, when handling an exception we need to check explicitly that there is a default_client name, or (as in Resource.validate_external()) we will get an assertion error. To simplify the avoidance of programming errors, define a _default_client_plugin() method that *always* returns a plugin whose is_not_found() and is_conflict() methods can be called. Change-Id: I1005397187457d9be42ba86096644dd17287d0e7 Story: #1745024 Task: 17677
26 lines
1001 B
Python
26 lines
1001 B
Python
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from heat.engine.clients import client_plugin
|
|
|
|
|
|
class DefaultClientPlugin(client_plugin.ClientPlugin):
|
|
"""A ClientPlugin that has no client.
|
|
|
|
This is provided so that Resource can make use of the is_not_found() and
|
|
is_conflict() methods even if the resource plugin has not specified a
|
|
client plugin.
|
|
"""
|
|
def _create(self, version=None):
|
|
return super(DefaultClientPlugin, self)._create(version)
|