+ $bot_version = lookup("cryptoportfolio::bot_version") |$key| { {} }
+ $bot_sha256 = lookup("cryptoportfolio::bot_sha256") |$key| { {} }
+
+ unless empty($bot_version) {
+ ensure_packages(["python", "python-pip"])
+
+ file { $cf_bot_app:
+ ensure => "directory",
+ mode => "0700",
+ owner => $cf_user,
+ group => $cf_group,
+ require => User[$cf_user],
+ }
+
+ archive { "${cf_home}/${bot_version}.tar.gz":
+ path => "${cf_home}/${bot_version}.tar.gz",
+ source => "https://git.immae.eu/releases/cryptoportfolio/trader/trader_${bot_version}.tar.gz",
+ checksum_type => "sha256",
+ checksum => $bot_sha256,
+ cleanup => false,
+ extract => true,
+ user => "cryptoportfolio",
+ username => $facts["ec2_metadata"]["hostname"],
+ password => generate_password(24, $password_seed, "ldap"),
+ extract_path => $cf_bot_app,
+ require => [User[$cf_user], File[$cf_bot_app]],
+ } ~>
+ exec { "py-cryptoportfolio-dependencies":
+ cwd => $cf_bot_app,
+ user => $cf_user,
+ environment => ["HOME=${cf_home}"],
+ command => "/usr/bin/make install",
+ require => User[$cf_user],
+ refreshonly => true,
+ before => [
+ File[$cf_bot_app_conf],
+ Cron["py-cryptoportfolio-before"],
+ Cron["py-cryptoportfolio-after"],
+ ]
+ }
+
+ file { $cf_bot_app_conf:
+ owner => $cf_user,
+ group => $cf_group,
+ mode => "0600",
+ content => template("role/cryptoportfolio/bot_config.ini.erb")
+ }
+
+ cron { "py-cryptoportfolio-before":
+ ensure => present,
+ command => "cd $cf_bot_app ; python main.py --config $cf_bot_app_conf --before",
+ user => "cryptoportfolio",
+ weekday => 7, # Sunday
+ hour => 22,
+ minute => 30,
+ environment => ["HOME=${cf_home}","PATH=/usr/bin/"],
+ require => [
+ File[$cf_bot_app_conf],
+ Archive["${cf_home}/${bot_version}.tar.gz"]
+ ],
+ }
+
+ cron { "py-cryptoportfolio-after":
+ ensure => present,
+ command => "cd $cf_bot_app ; python main.py --config $cf_bot_app_conf --after",
+ user => "cryptoportfolio",
+ weekday => 1, # Monday
+ hour => 1,
+ environment => ["HOME=${cf_home}","PATH=/usr/bin/"],
+ require => [
+ File[$cf_bot_app_conf],
+ Archive["${cf_home}/${bot_version}.tar.gz"]
+ ],
+ }
+ }
+