Add Blazar custom constraint plugin

This adds a reservation constraint for verifying a blazar
reservation id.

Change-Id: I27267e148c71288b4c7701fe704425b738e3e0b3
Story: 2005654
Task: 30942
This commit is contained in:
Pierre Riteau 2017-07-14 18:02:24 +01:00 committed by Jacob Colleran
parent 26f9c092f3
commit 17138f6a38
2 changed files with 16 additions and 0 deletions

View File

@ -14,7 +14,9 @@
from blazarclient import client as blazar_client
from blazarclient import exception as client_exception
from heat.common import exception
from heat.engine.clients import client_plugin
from heat.engine import constraints
CLIENT_NAME = 'blazar'
@ -56,3 +58,16 @@ class BlazarClientPlugin(client_plugin.ClientPlugin):
def get_host(self, id):
return self.client().host.get(id)
class BlazarBaseConstraint(constraints.BaseCustomConstraint):
resource_client_name = CLIENT_NAME
class ReservationConstraint(BlazarBaseConstraint):
expected_exceptions = (
exception.EntityNotFound,
client_exception.BlazarClientException,)
resource_getter_name = 'get_lease'

View File

@ -108,6 +108,7 @@ heat.constraints =
# service constraints
barbican.container = heat.engine.clients.os.barbican:ContainerConstraint
barbican.secret = heat.engine.clients.os.barbican:SecretConstraint
blazar.reservation = heat.engine.clients.os.blazar:ReservationConstraint
cinder.backup = heat.engine.clients.os.cinder:VolumeBackupConstraint
cinder.qos_specs = heat.engine.clients.os.cinder:QoSSpecsConstraint
cinder.snapshot = heat.engine.clients.os.cinder:VolumeSnapshotConstraint