+++ /dev/null
-# Copyright 2020 Canonical Ltd.
-#
-# 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 charms.reactive import Endpoint
-from charms.reactive import when
-from charms.reactive import set_flag, clear_flag
-
-
-class KeystoneProvides(Endpoint):
- @when("endpoint.{endpoint_name}.joined")
- def _joined(self):
- set_flag(self.expand_name("{endpoint_name}.joined"))
-
- @when("endpoint.{endpoint_name}.changed")
- def _changed(self):
- set_flag(self.expand_name("{endpoint_name}.ready"))
-
- @when("endpoint.{endpoint_name}.departed")
- def _departed(self):
- set_flag(self.expand_name("{endpoint_name}.departed"))
- clear_flag(self.expand_name("{endpoint_name}.joined"))
-
- def publish_info(
- self,
- host,
- port,
- keystone_db_password,
- region_id,
- user_domain_name,
- project_domain_name,
- admin_username,
- admin_password,
- admin_project_name,
- username,
- password,
- service,
- ):
- for relation in self.relations:
- relation.to_publish["host"] = host
- relation.to_publish["port"] = port
- relation.to_publish["keystone_db_password"] = keystone_db_password
- relation.to_publish["region_id"] = region_id
- relation.to_publish["user_domain_name"] = user_domain_name
- relation.to_publish["project_domain_name"] = project_domain_name
- relation.to_publish["admin_username"] = admin_username
- relation.to_publish["admin_password"] = admin_password
- relation.to_publish["admin_project_name"] = admin_project_name
- relation.to_publish["username"] = username
- relation.to_publish["password"] = password
- relation.to_publish["service"] = service
-
- def mark_complete(self):
- clear_flag(self.expand_name("{endpoint_name}.joined"))