Created
March 30, 2017 20:35
-
-
Save SnacksOnAPlane/ac0493abd7f36d717f8c01920d8ca8b0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pexpect | |
from pexpect import pxssh | |
import pdb | |
def do_lines(ssh, lines): | |
for line in lines.split("\n"): | |
line = line.strip() | |
print(line) | |
ssh.sendline(line) | |
ssh.prompt(timeout=300) | |
print(ssh.before) | |
def generate_id_list(): | |
# generate and download call IDs | |
ssh = pxssh.pxssh() | |
ssh.PROMPT = "pry" | |
ssh.login('web01.production.callscoring.aws.callrail.com','crconsole',auto_prompt_reset=False) | |
do_lines(ssh, '''require 'rake'; | |
CallScoring::Application.load_tasks; | |
Rake::Task['export:for_reloading'].invoke;''') | |
ssh.close() | |
def copy_id_list_to_local(): | |
scp = pexpect.spawn("scp crconsole@web01.production.callscoring.aws.callrail.com:/tmp/call_ids.txt /tmp/call_ids.txt") | |
scp.expect(pexpect.EOF) | |
print(scp.before) | |
def upload_id_list_to_prod(): | |
# upload call IDs to prod console | |
scp = pexpect.spawn("scp /tmp/call_ids.txt crconsole@console01.production.aws.callrail.com:/tmp/call_ids.txt") | |
scp.expect(pexpect.EOF) | |
print(scp.before) | |
def generate_call_csv(): | |
# generate CSV for import into call scoring | |
ssh = pxssh.pxssh() | |
ssh.PROMPT = "pry" | |
ssh.login('console01.production.aws.callrail.com','crconsole', auto_prompt_reset=False, login_timeout=45) | |
do_lines(ssh, '''ids = IO.read("/tmp/call_ids.txt").split("\\n"); | |
calls = Call.where(id: ids); | |
CSV.open("/tmp/export-scoring.csv", "wb") do |csv| | |
calls.each do |c| | |
c = c.decorate | |
csv << [ c.id, c.duration, c.recording_mp3.expiring_url(time=1.week).to_s, "https://app.callrail.com#{c.web_waveform_path('primary')}", "https://app.callrail.com#{c.web_waveform_path('secondary')}", c.start_time, c.network, c.company.id, c.company.name ] | |
end | |
end;''') | |
ssh.close() | |
def download_csv_to_local(): | |
# download CSV from prod | |
scp = pexpect.spawn("scp crconsole@console01.production.aws.callrail.com:/tmp/export-scoring.csv /tmp/export-scoring.csv") | |
scp.expect(pexpect.EOF) | |
print(scp.before) | |
def upload_csv_to_scoring(): | |
scp = pexpect.spawn("scp /tmp/export-scoring.csv crconsole@web01.production.callscoring.aws.callrail.com:/tmp/export-scoring.csv") | |
scp.expect(pexpect.EOF) | |
print(scp.before) | |
def import_csv_into_scoring(): | |
ssh = pxssh.pxssh() | |
ssh.PROMPT = "pry" | |
ssh.login('web01.production.callscoring.aws.callrail.com','crconsole',auto_prompt_reset=False) | |
do_lines(ssh, '''require 'rake'; | |
CallScoring::Application.load_tasks; | |
Rake::Task['import:refresh'].invoke('/tmp/export-scoring.csv');''') | |
ssh.close() | |
#generate_call_csv() | |
#download_csv_to_local() | |
upload_csv_to_scoring() | |
import_csv_into_scoring() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment