Page MenuHomeSoftware Heritage
Paste P404

bin/octocatalog-diff vangogh
ActivePublic

Authored by ardumont on May 22 2019, 10:05 AM.
Found host vangogh.euwest.azure.internal.softwareheritage.org
*** Running octocatalog-diff on host vangogh.euwest.azure.internal.softwareheritage.org
diff origin/production/vangogh.euwest.azure.internal.softwareheritage.org current/vangogh.euwest.azure.internal.softwareheritage.org
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>

 location / {
 proxy_pass http://swh-objstorage-gunicorn;
 proxy_read_timeout 3600s;
 proxy_connect_timeout 90s;
 proxy_send_timeout 90s;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Proxy "";
 }
<<<
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-default-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>

 location / {
 index index.html index.htm index.php;
 }
<<<
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-default-footer] =>
 parameters =>
 "order": "699"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-default-header] =>
 parameters =>
 "order": "001"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5003 default_server;

 server_name nginx-swh-objstorage-default;

 return 444;
 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-objstorage-default.access.log combined;
 error_log /var/log/nginx/nginx-swh-objstorage-default.error.log;
<<<
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-footer] =>
 parameters =>
 "order": "699"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[nginx-swh-objstorage-header] =>
 parameters =>
 "order": "001"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5003 deferred;

 server_name vangogh.euwest.azure.internal.softwareheritage.org vangogh 127.0.0.1 localhost ::1;
 client_max_body_size 4G;

 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-objstorage.access.log combined if=$error_status;
 error_log /var/log/nginx/nginx-swh-objstorage.error.log;
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>

 location / {
 proxy_pass http://swh-vault-gunicorn;
 proxy_read_timeout 3600s;
 proxy_connect_timeout 90s;
 proxy_send_timeout 90s;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Proxy "";
 }
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-default-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>

 location / {
 index index.html index.htm index.php;
 }
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-default-footer] =>
 parameters =>
 "order": "699"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-default-header] =>
 parameters =>
 "order": "001"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5005 default_server;

 server_name nginx-swh-vault-default;

 return 444;
 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-vault-default.access.log combined;
 error_log /var/log/nginx/nginx-swh-vault-default.error.log;
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-footer] =>
 parameters =>
 "order": "699"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[nginx-swh-vault-header] =>
 parameters =>
 "order": "001"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5005 deferred;

 server_name vangogh.euwest.azure.internal.softwareheritage.org vangogh 127.0.0.1 localhost ::1;
 client_max_body_size 4G;

 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-vault.access.log combined if=$error_status;
 error_log /var/log/nginx/nginx-swh-vault.error.log;
<<<
*******************************************
+ Concat::Fragment[swh-objstorage-gunicorn_upstream_footer] =>
 parameters =>
 "order": "90"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[swh-objstorage-gunicorn_upstream_header] =>
 parameters =>
 "order": "10"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
# MANAGED BY PUPPET
upstream swh-objstorage-gunicorn {
<<<
*******************************************
+ Concat::Fragment[swh-objstorage-gunicorn_upstream_members] =>
 parameters =>
 "order": "50"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
 
 server unix:/run/gunicorn/swh-objstorage/gunicorn.sock fail_timeout=0;
<<<
*******************************************
+ Concat::Fragment[swh-vault-gunicorn_upstream_footer] =>
 parameters =>
 "order": "90"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat::Fragment[swh-vault-gunicorn_upstream_header] =>
 parameters =>
 "order": "10"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
# MANAGED BY PUPPET
upstream swh-vault-gunicorn {
<<<
*******************************************
+ Concat::Fragment[swh-vault-gunicorn_upstream_members] =>
 parameters =>
 "order": "50"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
 
 server unix:/run/gunicorn/swh-vault/gunicorn.sock fail_timeout=0;
<<<
*******************************************
+ Concat[/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat[/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat[/etc/nginx/sites-available/nginx-swh-objstorage-default.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat[/etc/nginx/sites-available/nginx-swh-objstorage.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat[/etc/nginx/sites-available/nginx-swh-vault-default.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat[/etc/nginx/sites-available/nginx-swh-vault.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure": "present"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "order": "alpha"
 "owner": "root"
 "path": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "replace": true
 "show_diff": true
 "warn": false
*******************************************
+ Concat_file[/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_conf.d_swh-objstorage-gunicorn-upstream.conf"
*******************************************
+ Concat_file[/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_conf.d_swh-vault-gunicorn-upstream.conf"
*******************************************
+ Concat_file[/etc/nginx/sites-available/nginx-swh-objstorage-default.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage-default.conf"
*******************************************
+ Concat_file[/etc/nginx/sites-available/nginx-swh-objstorage.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage.conf"
*******************************************
+ Concat_file[/etc/nginx/sites-available/nginx-swh-vault-default.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_sites-available_nginx-swh-vault-default.conf"
*******************************************
+ Concat_file[/etc/nginx/sites-available/nginx-swh-vault.conf] =>
 parameters =>
 "backup": "puppet"
 "ensure_newline": false
 "group": "root"
 "mode": "0644"
 "order": "alpha"
 "owner": "root"
 "replace": true
 "show_diff": true
 "tag": "_etc_nginx_sites-available_nginx-swh-vault.conf"
*******************************************
+ Concat_fragment[nginx-swh-objstorage-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>

 location / {
 proxy_pass http://swh-objstorage-gunicorn;
 proxy_read_timeout 3600s;
 proxy_connect_timeout 90s;
 proxy_send_timeout 90s;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Proxy "";
 }
<<<
*******************************************
+ Concat_fragment[nginx-swh-objstorage-default-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>

 location / {
 index index.html index.htm index.php;
 }
<<<
*******************************************
+ Concat_fragment[nginx-swh-objstorage-default-footer] =>
 parameters =>
 "order": "699"
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[nginx-swh-objstorage-default-header] =>
 parameters =>
 "order": "001"
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5003 default_server;

 server_name nginx-swh-objstorage-default;

 return 444;
 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-objstorage-default.access.log combined;
 error_log /var/log/nginx/nginx-swh-objstorage-default.error.log;
<<<
*******************************************
+ Concat_fragment[nginx-swh-objstorage-footer] =>
 parameters =>
 "order": "699"
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[nginx-swh-objstorage-header] =>
 parameters =>
 "order": "001"
 "tag": "_etc_nginx_sites-available_nginx-swh-objstorage.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5003 deferred;

 server_name vangogh.euwest.azure.internal.softwareheritage.org vangogh 127.0.0.1 localhost ::1;
 client_max_body_size 4G;

 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-objstorage.access.log combined if=$error_status;
 error_log /var/log/nginx/nginx-swh-objstorage.error.log;
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "tag": "_etc_nginx_sites-available_nginx-swh-vault.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>

 location / {
 proxy_pass http://swh-vault-gunicorn;
 proxy_read_timeout 3600s;
 proxy_connect_timeout 90s;
 proxy_send_timeout 90s;
 proxy_buffering off;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Proxy "";
 }
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-default-500-6666cd76f96956469e7be39d750cc7d9] =>
 parameters =>
 "order": 500
 "tag": "_etc_nginx_sites-available_nginx-swh-vault-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>

 location / {
 index index.html index.htm index.php;
 }
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-default-footer] =>
 parameters =>
 "order": "699"
 "tag": "_etc_nginx_sites-available_nginx-swh-vault-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-default-header] =>
 parameters =>
 "order": "001"
 "tag": "_etc_nginx_sites-available_nginx-swh-vault-default.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5005 default_server;

 server_name nginx-swh-vault-default;

 return 444;
 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-vault-default.access.log combined;
 error_log /var/log/nginx/nginx-swh-vault-default.error.log;
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-footer] =>
 parameters =>
 "order": "699"
 "tag": "_etc_nginx_sites-available_nginx-swh-vault.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[nginx-swh-vault-header] =>
 parameters =>
 "order": "001"
 "tag": "_etc_nginx_sites-available_nginx-swh-vault.conf"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
 "content": >>>
# MANAGED BY PUPPET
server {
 listen 0.0.0.0:5005 deferred;

 server_name vangogh.euwest.azure.internal.softwareheritage.org vangogh 127.0.0.1 localhost ::1;
 client_max_body_size 4G;

 index index.html index.htm index.php;
 access_log /var/log/nginx/nginx-swh-vault.access.log combined if=$error_status;
 error_log /var/log/nginx/nginx-swh-vault.error.log;
<<<
*******************************************
+ Concat_fragment[swh-objstorage-gunicorn_upstream_footer] =>
 parameters =>
 "order": "90"
 "tag": "_etc_nginx_conf.d_swh-objstorage-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[swh-objstorage-gunicorn_upstream_header] =>
 parameters =>
 "order": "10"
 "tag": "_etc_nginx_conf.d_swh-objstorage-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
# MANAGED BY PUPPET
upstream swh-objstorage-gunicorn {
<<<
*******************************************
+ Concat_fragment[swh-objstorage-gunicorn_upstream_members] =>
 parameters =>
 "order": "50"
 "tag": "_etc_nginx_conf.d_swh-objstorage-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-objstorage-gunicorn-upstream.conf"
 "content": >>>
 
 server unix:/run/gunicorn/swh-objstorage/gunicorn.sock fail_timeout=0;
<<<
*******************************************
+ Concat_fragment[swh-vault-gunicorn_upstream_footer] =>
 parameters =>
 "order": "90"
 "tag": "_etc_nginx_conf.d_swh-vault-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
}
<<<
*******************************************
+ Concat_fragment[swh-vault-gunicorn_upstream_header] =>
 parameters =>
 "order": "10"
 "tag": "_etc_nginx_conf.d_swh-vault-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
# MANAGED BY PUPPET
upstream swh-vault-gunicorn {
<<<
*******************************************
+ Concat_fragment[swh-vault-gunicorn_upstream_members] =>
 parameters =>
 "order": "50"
 "tag": "_etc_nginx_conf.d_swh-vault-gunicorn-upstream.conf"
 "target": "/etc/nginx/conf.d/swh-vault-gunicorn-upstream.conf"
 "content": >>>
 
 server unix:/run/gunicorn/swh-vault/gunicorn.sock fail_timeout=0;
<<<
*******************************************
+ Cron[dar.vangogh] =>
 parameters =>
 "command": "/usr/bin/chronic bash -c 'set -eo pipefail; /usr/local/bin/swh-dar-backup /srv/backups/config/vangogh.config 2>&1 | tee -a /var/log/dar/vangogh.log'"
 "ensure": "present"
 "hour": 0
 "minute": 9
 "month": "*"
 "monthday": "*"
 "user": "root"
 "weekday": "*"
*******************************************
+ Dar::Backup[vangogh] =>
 parameters =>
 "backup_base": "/"
 "backup_exclusion": ["dev", "proc", "run", "srv/backups", "srv/elasticsearch", "srv/remote-backups", "srv/softwareheritage/objects", "srv/softwareheritage/postgres", "srv/softwareheritage/scratch", "srv/softwareheritage/scratch.2TB", "srv/storage", "sys", "tmp", "var/cache", "var/lib/mysql", "var/log/journal", "var/run", "var/tmp"]
 "backup_options": ["-zbzip2"]
 "backup_selection": []
 "backup_storage": "/srv/backups"
 "config_dir": "config"
 "flag_dir": "backups_done"
 "hour": 0
 "keep_backups": 1
 "lock_dir": "locks"
 "minute": 9
 "month": "*"
 "monthday": "*"
 "weekday": "*"
*******************************************
+ Exec[systemd-tmpfiles] =>
 parameters =>
 "command": "systemd-tmpfiles --create"
 "path": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
 "refreshonly": true
*******************************************
+ File[/etc/gunicorn/instances/swh-objstorage.cfg] =>
 parameters =>
 "ensure": "present"
 "group": "swhstorage"
 "mode": "0644"
 "notify": "Service[gunicorn-swh-objstorage]"
 "owner": "swhstorage"
 "content": >>>
# Gunicorn instance configuration.
# Managed by puppet (class gunicorn::instance swh-objstorage); changes will be lost

import traceback
import gunicorn.glogging

class Logger(gunicorn.glogging.Logger):
 log_only_errors = True

 def access(self, resp, req, environ, request_time):
 """ See http://httpd.apache.org/docs/2.0/logs.html#combined
 for format details
 """

 if not (self.cfg.accesslog or self.cfg.logconfig or self.cfg.syslog):
 return

 # wrap atoms:
 # - make sure atoms will be test case insensitively
 # - if atom doesn't exist replace it by '-'
 atoms = self.atoms(resp, req, environ, request_time)
 safe_atoms = self.atoms_wrapper_class(atoms)

 try:
 if self.log_only_errors and str(atoms['s']) == '200':
 return
 self.access_log.info(self.cfg.access_log_format % safe_atoms, extra={'swh_atoms': atoms})
 except:
 self.exception('Failed processing access log entry')

logger_class = Logger
logconfig = '/etc/gunicorn/logconfig.ini'

# custom settings
bind = "unix:/run/gunicorn/swh-objstorage/gunicorn.sock"
workers = 4
worker_class = "aiohttp.worker.GunicornWebWorker"
timeout = 3600
graceful_timeout = 3600
keepalive = 5
max_requests = 0
max_requests_jitter = 0
statsd_host = "127.0.0.1:8125"
statsd_prefix = "swh-objstorage"
<<<
*******************************************
+ File[/etc/gunicorn/instances/swh-vault.cfg] =>
 parameters =>
 "ensure": "present"
 "group": "swhvault"
 "mode": "0644"
 "notify": "Service[gunicorn-swh-vault]"
 "owner": "swhvault"
 "content": >>>
# Gunicorn instance configuration.
# Managed by puppet (class gunicorn::instance swh-vault); changes will be lost

import traceback
import gunicorn.glogging

class Logger(gunicorn.glogging.Logger):
 log_only_errors = True

 def access(self, resp, req, environ, request_time):
 """ See http://httpd.apache.org/docs/2.0/logs.html#combined
 for format details
 """

 if not (self.cfg.accesslog or self.cfg.logconfig or self.cfg.syslog):
 return

 # wrap atoms:
 # - make sure atoms will be test case insensitively
 # - if atom doesn't exist replace it by '-'
 atoms = self.atoms(resp, req, environ, request_time)
 safe_atoms = self.atoms_wrapper_class(atoms)

 try:
 if self.log_only_errors and str(atoms['s']) == '200':
 return
 self.access_log.info(self.cfg.access_log_format % safe_atoms, extra={'swh_atoms': atoms})
 except:
 self.exception('Failed processing access log entry')

logger_class = Logger
logconfig = '/etc/gunicorn/logconfig.ini'

# custom settings
bind = "unix:/run/gunicorn/swh-vault/gunicorn.sock"
workers = 4
worker_class = "aiohttp.worker.GunicornWebWorker"
timeout = 3600
graceful_timeout = 3600
keepalive = 5
max_requests = 10000
max_requests_jitter = 1000
statsd_host = "127.0.0.1:8125"
statsd_prefix = "swh-vault"
<<<
*******************************************
+ File[/etc/gunicorn/instances] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "purge": true
 "recurse": true
*******************************************
+ File[/etc/gunicorn/logconfig.ini] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "content": >>>
[loggers]
keys=root, gunicorn.error, gunicorn.access

[handlers]
keys=console, journal

[formatters]
keys=generic

[logger_root]
level=INFO
handlers=console,journal

[logger_gunicorn.error]
level=INFO
propagate=0
handlers=journal
qualname=gunicorn.error

[logger_gunicorn.access]
level=INFO
propagate=0
handlers=journal
qualname=gunicorn.access

[handler_console]
class=StreamHandler
formatter=generic
args=(sys.stdout, )

[handler_journal]
class=swh.core.logger.JournalHandler
formatter=generic
args=()

[formatter_generic]
format=%(asctime)s [%(process)d] [%(levelname)s] %(message)s
datefmt=%Y-%m-%d %H:%M:%S
class=logging.Formatter
<<<
*******************************************
+ File[/etc/gunicorn] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "purge": true
 "recurse": true
*******************************************
+ File[/etc/logrotate.d/swh-dar] =>
 parameters =>
 "ensure": "present"
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "content": >>>
/var/log/dar/*.log {
 weekly
 missingok
 rotate 5
 compress
 notifempty
 create 640 root adm
}
<<<
*******************************************
+ File[/etc/nginx/conf.d/error_status-map.conf] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "owner": "root"
 "content": >>>
# MANAGED BY PUPPET
map $status $error_status {
 default 1;

 404 0;
 ~^[23] 0;
}
<<<
*******************************************
+ File[/etc/nginx/conf.d] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/conf.mail.d] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/conf.stream.d] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/nginx.conf] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "content": >>>
# MANAGED BY PUPPET
user www-data;
worker_processes 2;
worker_rlimit_nofile 1024;

pid /var/run/nginx.pid;
error_log /var/log/nginx/error.log error;

events {
 accept_mutex off;
 accept_mutex_delay 500ms;
 worker_connections 1024;
}

http {

 include /etc/nginx/mime.types;
 default_type application/octet-stream;

 access_log /var/log/nginx/access.log;

 sendfile on;
 server_tokens on;

 types_hash_max_size 1024;
 types_hash_bucket_size 512;

 server_names_hash_bucket_size 128;
 server_names_hash_max_size 1024;

 keepalive_timeout 65s;
 keepalive_requests 100;
 client_body_timeout 60s;
 send_timeout 60s;
 lingering_timeout 5s;
 tcp_nodelay on;

 gzip on;
 gzip_comp_level 1;
 gzip_disable msie6;
 gzip_min_length 20;
 gzip_http_version 1.1;
 gzip_proxied off;
 gzip_vary off;

 client_body_temp_path /var/nginx/client_body_temp;
 client_max_body_size 10m;
 client_body_buffer_size 128k;
 proxy_temp_path /var/nginx/proxy_temp;
 proxy_connect_timeout 90s;
 proxy_send_timeout 90s;
 proxy_read_timeout 90s;
 proxy_buffers 32 4k;
 proxy_buffer_size 8k;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Proxy "";
 proxy_headers_hash_bucket_size 64;


 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
}
<<<
*******************************************
+ File[/etc/nginx/sites-available] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/sites-enabled/nginx-swh-objstorage-default.conf] =>
 parameters =>
 "ensure": "link"
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "owner": "root"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage-default.conf"
*******************************************
+ File[/etc/nginx/sites-enabled/nginx-swh-objstorage.conf] =>
 parameters =>
 "ensure": "link"
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "owner": "root"
 "target": "/etc/nginx/sites-available/nginx-swh-objstorage.conf"
*******************************************
+ File[/etc/nginx/sites-enabled/nginx-swh-vault-default.conf] =>
 parameters =>
 "ensure": "link"
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "owner": "root"
 "target": "/etc/nginx/sites-available/nginx-swh-vault-default.conf"
*******************************************
+ File[/etc/nginx/sites-enabled/nginx-swh-vault.conf] =>
 parameters =>
 "ensure": "link"
 "group": "root"
 "mode": "0644"
 "notify": "Class[Nginx::Service]"
 "owner": "root"
 "target": "/etc/nginx/sites-available/nginx-swh-vault.conf"
*******************************************
+ File[/etc/nginx/sites-enabled] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/streams-available] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx/streams-enabled] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/nginx] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ File[/etc/softwareheritage/objstorage/server.yml] =>
 parameters =>
 "ensure": "present"
 "group": "swhstorage"
 "mode": "0640"
 "notify": "Service[gunicorn-swh-objstorage]"
 "owner": "root"
 "content": >>>
---
objstorage:
 cls: azure
 args:
 account_name: ''
 api_secret_key: ''
 container_name: contents
client_max_size: 1073741824
<<<
*******************************************
+ File[/etc/softwareheritage/objstorage] =>
 parameters =>
 "ensure": "directory"
 "group": "swhstorage"
 "mode": "0750"
 "owner": "root"
*******************************************
+ File[/etc/softwareheritage/vault/server.yml] =>
 parameters =>
 "ensure": "present"
 "group": "swhvault"
 "mode": "0640"
 "notify": "Service[gunicorn-swh-vault]"
 "owner": "root"
 "content": >>>
---
storage:
 cls: remote
 args:
 url: http://storage0.euwest.azure.internal.softwareheritage.org:5002/
scheduler:
 cls: remote
 args:
 url: http://saatchi.internal.softwareheritage.org:5008/
cache:
 cls: azure
 args:
 account_name: ''
 api_secret_key: ''
 container_name: contents
vault:
 cls: local
 args:
 db: host=prado port=5434 user=swh-vault dbname=swh-vault password=swh::deploy::vault::db::password
<<<
*******************************************
+ File[/etc/softwareheritage/vault] =>
 parameters =>
 "ensure": "directory"
 "mode": "0755"
 "owner": "root"
*******************************************
+ File[/etc/systemd/system/gunicorn-swh-objstorage.service] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Systemctl::Daemon_reload]"
 "owner": "root"
 "content": >>>
# File managed by puppet (class gunicorn::instance swh-objstorage), changes will be lost

[Unit]
Description=Gunicorn instance swh-objstorage
ConditionPathExists=/etc/gunicorn/instances/swh-objstorage.cfg
PartOf=gunicorn.service
ReloadPropagatedFrom=gunicorn.service
Before=gunicorn.service

[Service]
User=swhstorage
Group=swhstorage
PIDFile=/run/gunicorn/swh-objstorage/pidfile
RuntimeDirectory=/run/gunicorn/swh-objstorage
WorkingDirectory=/run/gunicorn/swh-objstorage
Environment=SWH_CONFIG_FILENAME=/etc/softwareheritage/objstorage/server.yml
Environment=SWH_LOG_TARGET=journal
ExecStart=/usr/bin/gunicorn3 -p /run/gunicorn/swh-objstorage/pidfile -c /etc/gunicorn/instances/swh-objstorage.cfg swh.objstorage.api.wsgi
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
<<<
*******************************************
+ File[/etc/systemd/system/gunicorn-swh-vault.service] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Systemctl::Daemon_reload]"
 "owner": "root"
 "content": >>>
# File managed by puppet (class gunicorn::instance swh-vault), changes will be lost

[Unit]
Description=Gunicorn instance swh-vault
ConditionPathExists=/etc/gunicorn/instances/swh-vault.cfg
PartOf=gunicorn.service
ReloadPropagatedFrom=gunicorn.service
Before=gunicorn.service

[Service]
User=swhvault
Group=swhvault
PIDFile=/run/gunicorn/swh-vault/pidfile
RuntimeDirectory=/run/gunicorn/swh-vault
WorkingDirectory=/run/gunicorn/swh-vault
Environment=SWH_CONFIG_FILENAME=/etc/softwareheritage/vault/server.yml
Environment=SWH_LOG_TARGET=journal
ExecStart=/usr/bin/gunicorn3 -p /run/gunicorn/swh-vault/pidfile -c /etc/gunicorn/instances/swh-vault.cfg swh.vault.api.wsgi:app
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
<<<
*******************************************
+ File[/etc/systemd/system/gunicorn.service] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Systemctl::Daemon_reload]"
 "owner": "root"
 "content": >>>
# File managed by puppet (module swh-gunicorn), changes will be lost

[Unit]
Description=All gunicorn services

[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on

[Install]
WantedBy=multi-user.target
<<<
*******************************************
+ File[/etc/tmpfiles.d/gunicorn-swh-objstorage.conf] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Tmpfiles]"
 "owner": "root"
 "content": >>>
# Managed by puppet (class gunicorn::instance swh-objstorage). Modifications will be lost.

d /run/gunicorn/swh-objstorage 0755 swhstorage swhstorage - -
<<<
*******************************************
+ File[/etc/tmpfiles.d/gunicorn-swh-vault.conf] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Tmpfiles]"
 "owner": "root"
 "content": >>>
# Managed by puppet (class gunicorn::instance swh-vault). Modifications will be lost.

d /run/gunicorn/swh-vault 0755 swhvault swhvault - -
<<<
*******************************************
+ File[/etc/tmpfiles.d/gunicorn.conf] =>
 parameters =>
 "ensure": "file"
 "group": "root"
 "mode": "0444"
 "notify": "Class[Systemd::Tmpfiles]"
 "owner": "root"
 "content": >>>
# Managed by puppet (class gunicorn). Modifications will be lost.

d /run/gunicorn 0755 root root - -
<<<
*******************************************
+ File[/srv/backups/backups_done] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0600"
 "owner": "root"
*******************************************
+ File[/srv/backups/config/vangogh.config] =>
 parameters =>
 "ensure": "present"
 "group": "root"
 "mode": "0600"
 "owner": "root"
 "content": >>>
# Configuration for backup vangogh
# Managed by puppet. Your modifications will be overwritten

# Name of the backup file
BACKUP_TITLE=vangogh

# Path where backups are stored
BACKUP_STORAGE=/srv/backups

# Base path of the backup
BACKUP_BASE=/

# Includes
BACKUP_INCLUDE=/srv/backups/config/vangogh.includes

# Excludes
BACKUP_EXCLUDE=/srv/backups/config/vangogh.excludes

# Lock file
BACKUP_LOCK=/srv/backups/locks/vangogh

# Done file
BACKUP_DONE=/srv/backups/backups_done/vangogh

# Additional options to dar
BACKUP_OPTIONS=(
-zbzip2

)

# Number of backups to keep
BACKUP_KEEP="1"
<<<
*******************************************
+ File[/srv/backups/config/vangogh.excludes] =>
 parameters =>
 "ensure": "present"
 "group": "root"
 "mode": "0600"
 "owner": "root"
 "content": >>>
# Excludes for backup vangogh
# Managed by puppet. Your modifications will be overwritten

BACKUP_EXCLUDE_OPTIONS=(
-P dev
-P proc
-P run
-P srv/backups
-P srv/elasticsearch
-P srv/remote-backups
-P srv/softwareheritage/objects
-P srv/softwareheritage/postgres
-P srv/softwareheritage/scratch
-P srv/softwareheritage/scratch.2TB
-P srv/storage
-P sys
-P tmp
-P var/cache
-P var/lib/mysql
-P var/log/journal
-P var/run
-P var/tmp
)
<<<
*******************************************
+ File[/srv/backups/config/vangogh.includes] =>
 parameters =>
 "ensure": "present"
 "group": "root"
 "mode": "0600"
 "owner": "root"
 "content": >>>
# Includes for backup vangogh
# Managed by puppet. Your modifications will be overwritten

BACKUP_INCLUDE_OPTIONS=(
)
<<<
*******************************************
+ File[/srv/backups/config] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0600"
 "owner": "root"
*******************************************
+ File[/srv/backups/locks] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0600"
 "owner": "root"
*******************************************
+ File[/srv/backups] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0600"
 "owner": "root"
*******************************************
+ File[/tmp/nginx.d] =>
 parameters =>
 "ensure": "absent"
 "force": true
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "purge": true
 "recurse": true
*******************************************
+ File[/tmp/nginx.mail.d] =>
 parameters =>
 "ensure": "absent"
 "force": true
 "group": "root"
 "mode": "0644"
 "owner": "root"
 "purge": true
 "recurse": true
*******************************************
+ File[/usr/local/bin/swh-dar-backup] =>
 parameters =>
 "ensure": "present"
 "group": "root"
 "mode": "0755"
 "owner": "root"
 "content": >>>
#!/bin/bash
#
# swh-dar-backup: run a local backup with dar
#
# Copyright (c) 2015 Nicolas Dandrimont <nicolas@dandrimont.eu>
#
# This file is part of the swh-dar puppet module
#

set -e

if [ $# -ne 1 ]; then
 echo "Usage: $0 <config file>"
 exit 2
fi

BACKUP_CONFIG="$1"

. "$BACKUP_CONFIG"
. "$BACKUP_INCLUDE"
. "$BACKUP_EXCLUDE"

if [ -f "$BACKUP_LOCK" ] && kill -0 "$(cat "$BACKUP_LOCK")" 2>/dev/null; then
 echo "Lockfile \`$BACKUP_LOCK' present and process still exists, exiting"
 exit 2
fi

trap "rm -f '$BACKUP_LOCK'" EXIT

echo $$ > "$BACKUP_LOCK"

# Don't let people believe that they can fetch the current backup
rm -f "$BACKUP_DONE"

BACKUP_BASENAME="$BACKUP_STORAGE/$BACKUP_TITLE."
BACKUP_PATH="$BACKUP_BASENAME$(TZ=UTC date +"%Y-%m-%dT%H:%M:%SZ")"

DAR_OPTIONS=(
 -c
 "$BACKUP_PATH"
 -R
 "$BACKUP_BASE"
 "${BACKUP_INCLUDE_OPTIONS[@]}"
 # Include empty directories
 -D
 "${BACKUP_EXCLUDE_OPTIONS[@]}"
 "${BACKUP_OPTIONS[@]}"
)

# Do the backup
echo "[$(date -R)] Starting up backup ($BACKUP_CONFIG)"
rc=0
/usr/bin/dar "${DAR_OPTIONS[@]}" || rc="$?"
# Exit code 11 means a file changed during backup. Don't abort in that
# case.
if [ "$rc" -ne 0 -a "$rc" -ne 11 ] ; then
 echo "[$(date -R)] dar failed (exit code=$rc). Abort."
 exit 1
fi

# Touch the flag file
touch "$BACKUP_DONE"

echo "[$(date -R)] dar successful. Removing old backups."
# Prune old backups
count=0
ls -1t "$BACKUP_BASENAME"* | while read f; do
 ((count=count+1))
 if (( "$count" > $BACKUP_KEEP )); then
 rm "$f"
 fi
done

echo "[$(date -R)] All done."
<<<
*******************************************
+ File[/var/log/dar] =>
 parameters =>
 "ensure": "directory"
 "group": "adm"
 "mode": "0640"
 "owner": "root"
*******************************************
+ File[/var/log/nginx] =>
 parameters =>
 "ensure": "directory"
 "group": "adm"
 "mode": "0750"
 "owner": "www-data"
*******************************************
+ File[/var/nginx/client_body_temp] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "www-data"
*******************************************
+ File[/var/nginx/proxy_temp] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "www-data"
*******************************************
+ File[/var/nginx] =>
 parameters =>
 "ensure": "directory"
 "group": "root"
 "mode": "0644"
 "owner": "root"
*******************************************
+ Gunicorn::Instance[swh-objstorage] =>
 parameters =>
 "config_mode": "0644"
 "ensure": "enabled"
 "environment": {"SWH_CONFIG_FILENAME"=>"/etc/softwareheritage/objstorage/server.yml", "SWH_LOG_TARGET"=>"journal"}
 "executable": "swh.objstorage.api.wsgi"
 "group": "swhstorage"
 "log_only_errors": true
 "settings": {"bind"=>"unix:/run/gunicorn/swh-objstorage/gunicorn.sock", "workers"=>4, "worker_class"=>"aiohttp.worker.GunicornWebWorker", "timeout"=>3600, "graceful_timeout"=>3600, "keepalive"=>5, "max_requests"=>0, "max_requests_jitter"=>0, "statsd_host"=>"127.0.0.1:8125", "statsd_prefix"=>"swh-objstorage"}
 "user": "swhstorage"
*******************************************
+ Gunicorn::Instance[swh-vault] =>
 parameters =>
 "config_mode": "0644"
 "ensure": "enabled"
 "environment": {"SWH_CONFIG_FILENAME"=>"/etc/softwareheritage/vault/server.yml", "SWH_LOG_TARGET"=>"journal"}
 "executable": "swh.vault.api.wsgi:app"
 "group": "swhvault"
 "log_only_errors": true
 "settings": {"bind"=>"unix:/run/gunicorn/swh-vault/gunicorn.sock", "workers"=>4, "worker_class"=>"aiohttp.worker.GunicornWebWorker", "timeout"=>3600, "graceful_timeout"=>3600, "keepalive"=>5, "max_requests"=>10000, "max_requests_jitter"=>1000, "statsd_host"=>"127.0.0.1:8125", "statsd_prefix"=>"swh-vault"}
 "user": "swhvault"
*******************************************
+ Nginx::Resource::Location[nginx-swh-objstorage-default-default] =>
 parameters =>
 "add_header": {}
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "flv": false
 "index_files": ["index.html", "index.htm", "index.php"]
 "internal": false
 "location": "/"
 "location_allow": []
 "location_deny": []
 "mp4": false
 "notify": "Class[Nginx::Service]"
 "priority": 500
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_ignore_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "90s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "rewrite_rules": []
 "server": "nginx-swh-objstorage-default"
 "ssl": false
 "ssl_only": false
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Location[nginx-swh-objstorage-default] =>
 parameters =>
 "add_header": {}
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "flv": false
 "index_files": ["index.html", "index.htm", "index.php"]
 "internal": false
 "location": "/"
 "location_allow": []
 "location_deny": []
 "mp4": false
 "notify": "Class[Nginx::Service]"
 "priority": 500
 "proxy": "http://swh-objstorage-gunicorn"
 "proxy_buffering": "off"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_ignore_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "3600s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "rewrite_rules": []
 "server": "nginx-swh-objstorage"
 "ssl": false
 "ssl_only": false
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Location[nginx-swh-vault-default-default] =>
 parameters =>
 "add_header": {}
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "flv": false
 "index_files": ["index.html", "index.htm", "index.php"]
 "internal": false
 "location": "/"
 "location_allow": []
 "location_deny": []
 "mp4": false
 "notify": "Class[Nginx::Service]"
 "priority": 500
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_ignore_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "90s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "rewrite_rules": []
 "server": "nginx-swh-vault-default"
 "ssl": false
 "ssl_only": false
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Location[nginx-swh-vault-default] =>
 parameters =>
 "add_header": {}
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "flv": false
 "index_files": ["index.html", "index.htm", "index.php"]
 "internal": false
 "location": "/"
 "location_allow": []
 "location_deny": []
 "mp4": false
 "notify": "Class[Nginx::Service]"
 "priority": 500
 "proxy": "http://swh-vault-gunicorn"
 "proxy_buffering": "off"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_ignore_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "3600s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "rewrite_rules": []
 "server": "nginx-swh-vault"
 "ssl": false
 "ssl_only": false
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Map[error_status] =>
 parameters =>
 "default": "1"
 "ensure": "present"
 "hostnames": false
 "include_files": []
 "mappings": {"~^[23]"=>"0", "404"=>"0"}
 "string": "$status"
*******************************************
+ Nginx::Resource::Server[nginx-swh-objstorage-default] =>
 parameters =>
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "format_log": "combined"
 "geo_mappings": {}
 "group": "root"
 "http2": "off"
 "index_files": ["index.html", "index.htm", "index.php"]
 "ipv6_enable": false
 "ipv6_listen_ip": "::"
 "ipv6_listen_options": "default ipv6only=on"
 "ipv6_listen_port": 80
 "listen_ip": "0.0.0.0"
 "listen_options": "default_server"
 "listen_port": 5003
 "listen_unix_socket": "/var/run/nginx.sock"
 "listen_unix_socket_enable": false
 "location_allow": []
 "location_deny": []
 "locations": {}
 "locations_defaults": {}
 "maintenance": true
 "maintenance_value": "return 444"
 "mode": "0644"
 "owner": "root"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "90s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "resolver": []
 "rewrite_rules": []
 "rewrite_www_to_non_www": false
 "server_name": ["nginx-swh-objstorage-default"]
 "spdy": "off"
 "ssl": false
 "ssl_cache": "shared:SSL:10m"
 "ssl_ciphers": "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
 "ssl_listen_option": true
 "ssl_port": 443
 "ssl_prefer_server_ciphers": "on"
 "ssl_protocols": "TLSv1 TLSv1.1 TLSv1.2"
 "ssl_redirect": false
 "ssl_session_timeout": "5m"
 "ssl_stapling": false
 "ssl_stapling_verify": false
 "ssl_verify_client": "on"
 "string_mappings": {}
 "use_default_location": true
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Server[nginx-swh-objstorage] =>
 parameters =>
 "client_max_body_size": "4G"
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "format_log": "combined if=$error_status"
 "geo_mappings": {}
 "group": "root"
 "http2": "off"
 "index_files": ["index.html", "index.htm", "index.php"]
 "ipv6_enable": false
 "ipv6_listen_ip": "::"
 "ipv6_listen_options": "default ipv6only=on"
 "ipv6_listen_port": 80
 "listen_ip": "0.0.0.0"
 "listen_options": "deferred"
 "listen_port": 5003
 "listen_unix_socket": "/var/run/nginx.sock"
 "listen_unix_socket_enable": false
 "location_allow": []
 "location_deny": []
 "locations": {}
 "locations_defaults": {}
 "maintenance": false
 "maintenance_value": "return 503"
 "mode": "0644"
 "owner": "root"
 "proxy": "http://swh-objstorage-gunicorn"
 "proxy_buffering": "off"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "3600s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "resolver": []
 "rewrite_rules": []
 "rewrite_www_to_non_www": false
 "server_name": ["vangogh.euwest.azure.internal.softwareheritage.org", "vangogh", "127.0.0.1", "localhost", "::1"]
 "spdy": "off"
 "ssl": false
 "ssl_cache": "shared:SSL:10m"
 "ssl_ciphers": "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
 "ssl_listen_option": true
 "ssl_port": 443
 "ssl_prefer_server_ciphers": "on"
 "ssl_protocols": "TLSv1 TLSv1.1 TLSv1.2"
 "ssl_redirect": false
 "ssl_session_timeout": "5m"
 "ssl_stapling": false
 "ssl_stapling_verify": false
 "ssl_verify_client": "on"
 "string_mappings": {}
 "use_default_location": true
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Server[nginx-swh-vault-default] =>
 parameters =>
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "format_log": "combined"
 "geo_mappings": {}
 "group": "root"
 "http2": "off"
 "index_files": ["index.html", "index.htm", "index.php"]
 "ipv6_enable": false
 "ipv6_listen_ip": "::"
 "ipv6_listen_options": "default ipv6only=on"
 "ipv6_listen_port": 80
 "listen_ip": "0.0.0.0"
 "listen_options": "default_server"
 "listen_port": 5005
 "listen_unix_socket": "/var/run/nginx.sock"
 "listen_unix_socket_enable": false
 "location_allow": []
 "location_deny": []
 "locations": {}
 "locations_defaults": {}
 "maintenance": true
 "maintenance_value": "return 444"
 "mode": "0644"
 "owner": "root"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "90s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "resolver": []
 "rewrite_rules": []
 "rewrite_www_to_non_www": false
 "server_name": ["nginx-swh-vault-default"]
 "spdy": "off"
 "ssl": false
 "ssl_cache": "shared:SSL:10m"
 "ssl_ciphers": "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
 "ssl_listen_option": true
 "ssl_port": 443
 "ssl_prefer_server_ciphers": "on"
 "ssl_protocols": "TLSv1 TLSv1.1 TLSv1.2"
 "ssl_redirect": false
 "ssl_session_timeout": "5m"
 "ssl_stapling": false
 "ssl_stapling_verify": false
 "ssl_verify_client": "on"
 "string_mappings": {}
 "use_default_location": true
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Server[nginx-swh-vault] =>
 parameters =>
 "client_max_body_size": "4G"
 "ensure": "present"
 "fastcgi_params": "/etc/nginx/fastcgi.conf"
 "format_log": "combined if=$error_status"
 "geo_mappings": {}
 "group": "root"
 "http2": "off"
 "index_files": ["index.html", "index.htm", "index.php"]
 "ipv6_enable": false
 "ipv6_listen_ip": "::"
 "ipv6_listen_options": "default ipv6only=on"
 "ipv6_listen_port": 80
 "listen_ip": "0.0.0.0"
 "listen_options": "deferred"
 "listen_port": 5005
 "listen_unix_socket": "/var/run/nginx.sock"
 "listen_unix_socket_enable": false
 "location_allow": []
 "location_deny": []
 "locations": {}
 "locations_defaults": {}
 "maintenance": false
 "maintenance_value": "return 503"
 "mode": "0644"
 "owner": "root"
 "proxy": "http://swh-vault-gunicorn"
 "proxy_buffering": "off"
 "proxy_connect_timeout": "90s"
 "proxy_hide_header": []
 "proxy_pass_header": []
 "proxy_read_timeout": "3600s"
 "proxy_send_timeout": "90s"
 "proxy_set_header": ["Host $host", "X-Real-IP $remote_addr", "X-Forwarded-For $proxy_add_x_forwarded_for", "Proxy \"\""]
 "resolver": []
 "rewrite_rules": []
 "rewrite_www_to_non_www": false
 "server_name": ["vangogh.euwest.azure.internal.softwareheritage.org", "vangogh", "127.0.0.1", "localhost", "::1"]
 "spdy": "off"
 "ssl": false
 "ssl_cache": "shared:SSL:10m"
 "ssl_ciphers": "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS"
 "ssl_listen_option": true
 "ssl_port": 443
 "ssl_prefer_server_ciphers": "on"
 "ssl_protocols": "TLSv1 TLSv1.1 TLSv1.2"
 "ssl_redirect": false
 "ssl_session_timeout": "5m"
 "ssl_stapling": false
 "ssl_stapling_verify": false
 "ssl_verify_client": "on"
 "string_mappings": {}
 "use_default_location": true
 "uwsgi_params": "/etc/nginx/uwsgi_params"
*******************************************
+ Nginx::Resource::Upstream[swh-objstorage-gunicorn] =>
 parameters =>
 "ensure": "present"
 "members": ["unix:/run/gunicorn/swh-objstorage/gunicorn.sock"]
 "upstream_context": "http"
 "upstream_fail_timeout": 0
*******************************************
+ Nginx::Resource::Upstream[swh-vault-gunicorn] =>
 parameters =>
 "ensure": "present"
 "members": ["unix:/run/gunicorn/swh-vault/gunicorn.sock"]
 "upstream_context": "http"
 "upstream_fail_timeout": 0
*******************************************
+ Node[__node_regexp__unibo-prodorangerievangogh.euwest.azure.internal.softwareheritage.org]
*******************************************
- Node[default]
*******************************************
+ Package[dar] =>
 parameters =>
 "ensure": "present"
*******************************************
+ Package[gunicorn3] =>
 parameters =>
 "ensure": "installed"
*******************************************
+ Package[nginx] =>
 parameters =>
 "ensure": "present"
 "name": "nginx-light"
*******************************************
+ Package[python3-swh.objstorage] =>
 parameters =>
 "ensure": "latest"
 "notify": ["Service[gunicorn-swh-objstorage]"]
*******************************************
+ Package[python3-swh.vault] =>
 parameters =>
 "ensure": "present"
 "notify": ["Service[gunicorn-swh-vault]"]
*******************************************
+ Profile::Swh::Deploy::Rpc_server[objstorage] =>
 parameters =>
 "config_key": "objstorage"
 "executable": "swh.objstorage.api.wsgi"
 "http_check_string": "SWH Objstorage API server"
 "instance_name": "objstorage"
 "worker": "async"
*******************************************
+ Profile::Swh::Deploy::Rpc_server[vault] =>
 parameters =>
 "config_key": "vault"
 "executable": "swh.vault.api.wsgi:app"
 "http_check_string": "SWH Vault API server"
 "instance_name": "vault"
 "worker": "async"
*******************************************
+ Service[gunicorn-swh-objstorage] =>
 parameters =>
 "enable": true
 "ensure": "running"
 "restart": "/bin/systemctl reload gunicorn-swh-objstorage.service"
*******************************************
+ Service[gunicorn-swh-vault] =>
 parameters =>
 "enable": true
 "ensure": "running"
 "restart": "/bin/systemctl reload gunicorn-swh-vault.service"
*******************************************
+ Service[gunicorn] =>
 parameters =>
 "enable": true
 "ensure": "running"
*******************************************
+ Service[nginx] =>
 parameters =>
 "enable": true
 "ensure": "running"
 "hasrestart": true
 "hasstatus": true
*******************************************
+ Systemd::Tmpfile[gunicorn-swh-objstorage.conf] =>
 parameters =>
 "ensure": "present"
 "path": "/etc/tmpfiles.d"
 "content": >>>
# Managed by puppet (class gunicorn::instance swh-objstorage). Modifications will be lost.

d /run/gunicorn/swh-objstorage 0755 swhstorage swhstorage - -
<<<
*******************************************
+ Systemd::Tmpfile[gunicorn-swh-vault.conf] =>
 parameters =>
 "ensure": "present"
 "path": "/etc/tmpfiles.d"
 "content": >>>
# Managed by puppet (class gunicorn::instance swh-vault). Modifications will be lost.

d /run/gunicorn/swh-vault 0755 swhvault swhvault - -
<<<
*******************************************
+ Systemd::Tmpfile[gunicorn.conf] =>
 parameters =>
 "ensure": "file"
 "path": "/etc/tmpfiles.d"
 "source": "puppet:///modules/gunicorn/gunicorn.tmpfiles"
*******************************************
+ Systemd::Unit_file[gunicorn-swh-objstorage.service] =>
 parameters =>
 "ensure": "present"
 "notify": ["Service[gunicorn-swh-objstorage]"]
 "path": "/etc/systemd/system"
 "content": >>>
# File managed by puppet (class gunicorn::instance swh-objstorage), changes will be lost

[Unit]
Description=Gunicorn instance swh-objstorage
ConditionPathExists=/etc/gunicorn/instances/swh-objstorage.cfg
PartOf=gunicorn.service
ReloadPropagatedFrom=gunicorn.service
Before=gunicorn.service

[Service]
User=swhstorage
Group=swhstorage
PIDFile=/run/gunicorn/swh-objstorage/pidfile
RuntimeDirectory=/run/gunicorn/swh-objstorage
WorkingDirectory=/run/gunicorn/swh-objstorage
Environment=SWH_CONFIG_FILENAME=/etc/softwareheritage/objstorage/server.yml
Environment=SWH_LOG_TARGET=journal
ExecStart=/usr/bin/gunicorn3 -p /run/gunicorn/swh-objstorage/pidfile -c /etc/gunicorn/instances/swh-objstorage.cfg swh.objstorage.api.wsgi
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
<<<
*******************************************
+ Systemd::Unit_file[gunicorn-swh-vault.service] =>
 parameters =>
 "ensure": "present"
 "notify": ["Service[gunicorn-swh-vault]"]
 "path": "/etc/systemd/system"
 "content": >>>
# File managed by puppet (class gunicorn::instance swh-vault), changes will be lost

[Unit]
Description=Gunicorn instance swh-vault
ConditionPathExists=/etc/gunicorn/instances/swh-vault.cfg
PartOf=gunicorn.service
ReloadPropagatedFrom=gunicorn.service
Before=gunicorn.service

[Service]
User=swhvault
Group=swhvault
PIDFile=/run/gunicorn/swh-vault/pidfile
RuntimeDirectory=/run/gunicorn/swh-vault
WorkingDirectory=/run/gunicorn/swh-vault
Environment=SWH_CONFIG_FILENAME=/etc/softwareheritage/vault/server.yml
Environment=SWH_LOG_TARGET=journal
ExecStart=/usr/bin/gunicorn3 -p /run/gunicorn/swh-vault/pidfile -c /etc/gunicorn/instances/swh-vault.cfg swh.vault.api.wsgi:app
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
<<<
*******************************************
+ Systemd::Unit_file[gunicorn.service] =>
 parameters =>
 "ensure": "present"
 "notify": ["Service[gunicorn]"]
 "path": "/etc/systemd/system"
 "source": "puppet:///modules/gunicorn/gunicorn.service"
*******************************************
*** End octocatalog-diff on vangogh.euwest.azure.internal.softwareheritage.org

Event Timeline

piping octocatalog-diff into cat should drop the escape codes