blob: bda5d2f4500bedd14b0e35bad41656fb42cf61df [file] [log] [blame]
# 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"))