class SmartMachine::Sync

Public Instance Methods

run(**params) { || ... } click to toggle source
# File lib/smart_machine/sync.rb, line 4
def run(**params)
        puts "-----> Syncing SmartMachine"

        only = params[:only] ? Array(params[:only]).flatten : [:push, :pull]

        pull if only.include? :pull
        yield if block_given?
        push if only.include? :push

        puts "-----> Syncing SmartMachine Complete"
end

Private Instance Methods

pull() click to toggle source
# File lib/smart_machine/sync.rb, line 18
def pull
        print "-----> Sync pulling ... "
        system("rsync -azumv --delete --include={#{pull_files_list}} --exclude=* -e ssh #{SmartMachine.credentials.machine[:username]}@#{SmartMachine.credentials.machine[:address]}:~/.smartmachine/ .")
        puts "done"
end
pull_files_list() click to toggle source
# File lib/smart_machine/sync.rb, line 30
def pull_files_list
        files = [
                'apps/***',

                'bin/***',

                'grids',

                'grids/elasticsearch',
                'grids/elasticsearch/data/***',
                'grids/elasticsearch/logs/***',

                'grids/minio',
                'grids/minio/data/***',

                'grids/mysql',
                'grids/mysql/backups/***',
                'grids/mysql/data/***',

                'grids/nginx',
                'grids/nginx/certificates/***',

                'grids/scheduler',
                'grids/scheduler/crontabs/***',

                'grids/solr',
                'grids/solr/solr/***',
        ]
        files.join(',')
end
push() click to toggle source
# File lib/smart_machine/sync.rb, line 24
def push
        print "-----> Sync pushing ... "
        system("rsync -azumv --delete --include={#{push_files_list}} --exclude=* -e ssh ./ #{SmartMachine.credentials.machine[:username]}@#{SmartMachine.credentials.machine[:address]}:~/.smartmachine")
        puts "done"
end
push_files_list() click to toggle source
# File lib/smart_machine/sync.rb, line 61
def push_files_list
        files = [
                'apps',
                'apps/containers',
                'apps/containers/.keep',
                'apps/repositories',
                'apps/repositories/.keep',

                'config',
                'config/mysql',
                'config/mysql/schedule.rb',
                'config/credentials.yml.enc',
                'config/environment.rb',

                'grids',

                'grids/elasticsearch',
                'grids/elasticsearch/data',
                'grids/elasticsearch/data/.keep',
                'grids/elasticsearch/logs',
                'grids/elasticsearch/logs/.keep',

                'grids/minio',
                'grids/minio/data',
                'grids/minio/data/.keep',

                'grids/mysql',
                'grids/mysql/backups',
                'grids/mysql/backups/.keep',
                'grids/mysql/data',
                'grids/mysql/data/.keep',

                'grids/nginx',
                'grids/nginx/certificates',
                'grids/nginx/certificates/.keep',
                'grids/nginx/htpasswd/***',
                'grids/nginx/fastcgi.conf',
                'grids/nginx/nginx.tmpl',

                'grids/prereceiver',
                'grids/prereceiver/pre-receive',

                'grids/redis',
                'grids/redis/data',
                'grids/redis/data/.keep',

                'grids/scheduler',
                'grids/scheduler/crontabs',
                'grids/scheduler/crontabs/.keep',

                'grids/solr',
                'grids/solr/solr',
                'grids/solr/solr/.keep',

                'tmp/***',
        ]
        files.join(',')
end