def heat_plugin_joined(rel_id=None):
    utils.deploy_openstack_code("contrail-openstack-heat-init", "heat")

    plugin_path = utils.get_component_sys_paths(
        "heat") + "/vnc_api/gen/heat/resources"
    plugin_dirs = config.get("heat-plugin-dirs")
    if plugin_path not in plugin_dirs:
        plugin_dirs += ',' + plugin_path
    ctx = utils.get_context()
    sections = {
        "clients_contrail": [
            ("user", ctx.get("keystone_admin_user")),
            ("password", ctx.get("keystone_admin_password")),
            ("tenant", ctx.get("keystone_admin_tenant")),
            ("api_server", " ".join(ctx.get("api_servers"))),
            ("auth_host_ip", ctx.get("keystone_ip")),
            ("use_ssl", ctx.get("ssl_enabled")),
        ]
    }

    if ctx.get("ssl_enabled") and "ca_cert_data" in ctx:
        ca_file_path = "/etc/heat/contrail-ca-cert.pem"
        common_utils.save_file(ca_file_path, ctx["ca_cert_data"], perms=0o644)
        sections["clients_contrail"].append(("cafile", ca_file_path))

    conf = {"heat": {"/etc/heat/heat.conf": {"sections": sections}}}
    settings = {
        "plugin-dirs": plugin_dirs,
        "subordinate_configuration": json.dumps(conf)
    }
    relation_set(relation_id=rel_id, relation_settings=settings)
def heat_plugin_joined(rel_id=None):
    configure_sources(True, "install-sources", "install-keys")
    apt_upgrade(fatal=True, dist=True)
    apt_install(["contrail-heat"], fatal=True)

    try:
        output = check_output(
            ["dpkg-query", "-f", "${Version}\\n", "-W", "contrail-heat"])
        version = output.decode('UTF-8').rstrip()
        application_version_set(version)
    except CalledProcessError:
        return None
    plugin_dirs = config.get("heat-plugin-dirs")
    ctx = get_context()
    sections = {
        "clients_contrail": [("user", ctx.get("keystone_admin_user")),
                             ("password", ctx.get("keystone_admin_password")),
                             ("tenant", ctx.get("keystone_admin_tenant")),
                             ("api_server", ctx.get("api_server")),
                             ("auth_host_ip", ctx.get("keystone_ip"))]
    }

    conf = {"heat": {"/etc/heat/heat.conf": {"sections": sections}}}
    settings = {
        "plugin-dirs": plugin_dirs,
        "subordinate_configuration": json.dumps(conf)
    }
    relation_set(relation_id=rel_id, relation_settings=settings)