cfn_manage 0.7.1 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,97 +0,0 @@
1
- require 'cfn_manage/aws_credentials'
2
- require 'aws-sdk-transfer'
3
-
4
- module CfnManage
5
-
6
- class TransferStartStopHandler
7
-
8
- def initialize(server_id, skip_wait)
9
- sftpId = server_id.split("/")
10
- @server_id = sftpId.last
11
- @skip_wait = skip_wait
12
- credentials = CfnManage::AWSCredentials.get_session_credentials("startstoptransfer_#{@server_id}")
13
- @client = Aws::Transfer::Client.new(retry_limit: 20)
14
- if credentials != nil
15
- @client = Aws::Transfer::Client.new(credentials: credentials, retry_limit: 20)
16
- end
17
- end
18
-
19
- def start(configuration)
20
-
21
- state = get_state()
22
-
23
- if state != "OFFLINE"
24
- $log.warn("SFTP Server #{@server_id} is in a state of #{state} and can not be started.")
25
- return
26
- end
27
-
28
- $log.info("Starting SFTP Server #{@server_id}")
29
- @client.start_server({
30
- server_id: @server_id,
31
- })
32
- unless @skip_wait
33
- $log.info("Waiting for SFTP to start #{@cluster_id}")
34
- wait('ONLINE')
35
- end
36
-
37
- return configuration
38
- end
39
-
40
- def stop()
41
-
42
- state = get_state()
43
-
44
- if state != "ONLINE"
45
- $log.warn("SFTP Server #{@server_id} is in a state of #{state} and can not be stopped.")
46
- return {}
47
- end
48
-
49
- @client.stop_server({
50
- server_id: @server_id,
51
- })
52
- unless @skip_wait
53
- $log.info("Waiting for SFTP to stop #{@cluster_id}")
54
- wait('OFFLINE')
55
- end
56
- return {}
57
- end
58
-
59
- def get_state()
60
- resp = @client.describe_server({
61
- server_id: @server_id,
62
- })
63
- return resp.server.state
64
- end
65
-
66
- def wait(completed_state)
67
-
68
- state_count = 0
69
- steady_count = 2
70
- attempts = 0
71
- until attempts == (max_attempts = 60*6) do
72
- state = get_state()
73
- $log.info("SFTP Server #{@server_id} state: #{state}, waiting for #{completed_state}")
74
-
75
- if state == "#{completed_state}"
76
- state_count = state_count + 1
77
- $log.info("#{state_count}/#{steady_count}")
78
- elsif ["START_FAILED", "STOP_FAILED"].include?(state)
79
- $log.error("SFTP Server #{@server_id} failed to reach state #{completed_state} with current state #{state}!")
80
- break
81
- else
82
- state_count = 0
83
- end
84
- break if state_count == steady_count
85
- attempts = attempts + 1
86
- sleep(15)
87
- end
88
-
89
- if attempts == max_attempts
90
- $log.error("SFTP Server #{@server_id} did not enter #{completed_state} state, however continuing operations...")
91
- end
92
-
93
- end
94
-
95
- end
96
-
97
- end