-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestAWS.m
77 lines (57 loc) · 2.08 KB
/
testAWS.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
clear;
clc;
import java.io.*;
import java.util.*;
% Import Jsch
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
% Import AWS
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.*;
import com.amazonaws.services.s3.*;
import com.amazonaws.services.simpledb.*;
import com.amazonaws.*;
import com.amazonaws.services.ec2.AmazonEC2Client;
import org.apache.http.client.methods.HttpUriRequest;
% Set credentials and #of instances here
keyName = 'initial.pem';
credPath = 'TaoAwsCredentials.properties';
numOfInst = 2;
% Global Variable
amazonEC2Client = com.amazonaws.services.ec2.AmazonEC2Client();
% matlabpool(4);
% Init EC2 Client
amazonEC2Client = initClient(amazonEC2Client, credPath);
% Get Current instances Info
[amazonEC2Client, EC2_info] = getAWSInstanceInfo(amazonEC2Client);
% Create Instances
for i = (EC2_info.instCount+1):numOfInst
[amazonEC2Client,ec2Inst] = initAWSInstance(amazonEC2Client);
end
%Get the new instance info
[amazonEC2Client, EC2_info] = getAWSInstanceInfo(amazonEC2Client);
%The authenticity of host if run for the first time, need manual input
for i = 1:numOfInst
lfile = '.';
rfile = '/home/ubuntu/mlep/Test1/Output/*.csv';
cmd = ['scp -r -i ' keyName ' ubuntu@' strtrim(EC2_info.pubDNSName(i,:)) ':' rfile ' ' lfile ];
[stastus, msg] = system(cmd, '-echo');
end
%Remove old file on AWS
amazonEC2Client = removeFolderOnAWS(amazonEC2Client, EC2_info);
% Push idf files to AWS
amazonEC2Client = pushToAWS('idfs', amazonEC2Client, EC2_info, keyName);
% Run simulation on AWS
amazonEC2Client = runSimulationOnAWS(amazonEC2Client, EC2_info);
% Move simulation result to proper folders
amazonEC2Client = moveFileOnAWS( amazonEC2Client, EC2_info );
% Fetch simulation result on AWS
amazonEC2Client = fetchDataOnAWS( amazonEC2Client, EC2_info);
if matlabpool('size') > 0
matlabpool close;
end