+ valid_paas_providers = ["juju"]
+
+ def check_conflict_on_new(self, session, indata):
+ super().check_conflict_on_new(session, indata)
+ self._check_paas_account(indata)
+
+ def _is_paas_vim_type(self, indata):
+ return indata.get("vim_type") and indata["vim_type"] == "paas"
+
+ def _check_paas_account(self, indata):
+ if self._is_paas_vim_type(indata):
+ self._check_paas_provider_is_valid(indata)
+
+ def _check_paas_provider_is_valid(self, indata):
+ try:
+ paas_provider = indata["config"]["paas_provider"]
+ if paas_provider in self.valid_paas_providers:
+ return
+ except Exception:
+ pass
+ raise EngineException(
+ "Invalid paas_provider for VIM account '{}'.".format(indata["name"]),
+ HTTPStatus.UNPROCESSABLE_ENTITY,
+ )