<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
  <services>
    <service name="postgresqlclient" target="risotto" engine="cheetah">
      <file mode="400">/secrets/postgresql.pass</file>
      <file file_type="variable" source="ca_PostgreSQL.crt">pg_client_ca_file</file>
      <file file_type="variable" owner_type="variable" owner="pg_client_key_owner" mode="444" source="postgresql.crt">pg_client_crt_file</file>
      <file file_type="variable" owner_type="variable" owner="pg_client_key_owner" mode="400" source="postgresql.key">pg_client_key_file</file>
      <file filelist="postgresql_debian" engine="none" source="sysuser-postgresql-client.conf">/sysusers.d/0postgresqlclient.conf</file>
    </service>
  </services>
  <variables>
    <family name="postgresql" description="PostgreSQL">
      <variable name="pg_client_server_domainname" type="domainname" description="Nom de domaine du serveur PostgreSQL" mandatory="True" supplier="Postgresql" hidden="True"/>
      <variable name="pg_client_username" description="Client username" mandatory="True" hidden="True" supplier="Postgresql:username"/>
      <variable name="pg_client_password" type="password" description="Client password" mandatory="True" hidden="True" supplier="Postgresql:password"/>
      <variable name="pg_client_database" description="Client database" mandatory="True" hidden="True" supplier="Postgresql:database"/>
      <variable name="pg_client_key_owner" type="unix_user" description="Key owner" mandatory="True" hidden="True">
        <value>apache</value>
      </variable>
      <variable name="pg_client_ca_file" type="filename" description="Postgresql CA filename" hidden="True"/>
      <variable name="pg_client_crt_file" type="filename" description="Postgresql cert filename" hidden="True"/>
      <variable name="pg_client_key_file" type="filename" description="Postgresql key filename" hidden="True"/>
    </family>
  </variables>
  <constraints>
    <fill name="normalize_family">
      <param type="variable">domain_name_eth0</param>
      <target>pg_client_username</target>
    </fill>
    <!--fill name="get_provider_name">
      <param type="variable">zone_name_eth0</param>
      <param>Postgresql</param>
      <target>pg_client_server_domainname</target>
    </fill-->
    <fill name="get_password">
      <param name="server_name" type="variable">pg_client_server_domainname</param>
      <param name="username" type="variable">domain_name_eth0</param>
      <param name="description">remote</param>
      <param name="type">cleartext</param>
      <param name="hide" type="variable">hide_secret</param>
      <target>pg_client_password</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">pg_client_username</param>
      <target>pg_client_database</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_ca_directory</param>
      <param>ca_PostgreSQL.crt</param>
      <param name="join">/</param>
      <target>pg_client_ca_file</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_cert_directory</param>
      <param>postgresql.crt</param>
      <param name="join">/</param>
      <target>pg_client_crt_file</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_key_directory</param>
      <param>postgresql.key</param>
      <param name="join">/</param>
      <target>pg_client_key_file</target>
    </fill>
    <condition name="disabled_if_not_in" source="os_name">
      <param>Debian</param>
      <target type="filelist">postgresql_debian</target>
    </condition>
  </constraints>
</rougail>
