lds-cf-plugin 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,4 +11,5 @@ require "lds-cf-plugin/oracle_service"
11
11
  require "lds-cf-plugin/lds_account_service"
12
12
  require "lds-cf-plugin/http_service"
13
13
  require "lds-cf-plugin/wam_service"
14
+ require "lds-cf-plugin/servicemanager_service"
14
15
  require "lds-cf-plugin/tunnel"
@@ -0,0 +1,190 @@
1
+ require "cf/cli"
2
+ require "json"
3
+
4
+ module LdsCfPlugin
5
+ class ServiceManagerService < CF::CLI
6
+ def precondition
7
+ check_target
8
+ end
9
+
10
+ desc "Create a Service Manager Application Service"
11
+ group :lds, :services
12
+ #input :instance_name, :desc => "Service Manager application service name", :argument => :optional
13
+ input :name, :desc => "Service Instance Name", :argument => :optional
14
+ input :sm_app_name, :desc => "Service Manager application service name", :argument => :optional
15
+ input :env, :desc => "Environment", :argument => :optional
16
+ input :prexisting, :desc => "Environment", :argument => :optional
17
+
18
+ input :dutyPhone, :desc => "Duty Phone", :argument => :optional
19
+ input :primaryContact, :desc => "Primary Contact", :argument => :optional
20
+ input :solutionManager, :desc => "Solution Manager", :argument => :optional
21
+ input :supportGroup, :desc => "Support Group", :argument => :optional
22
+
23
+ input :portfolioId, :desc => "Portfolio ID", :argument => :optional
24
+
25
+ def create_servicemanager_service
26
+ offerings = client.services
27
+ offerings.keep_if { |s| s.label == 'servicemanager-service' && s.provider == 'ICS' }
28
+ service = offerings.first
29
+
30
+ if !service
31
+ fail "Cannot find Service Manager service on #{client.target}"
32
+ end
33
+
34
+ if service.version != "0.1"
35
+ fail "Your lds-cf-plugin version is out of date. To update execute `gem update lds-cf-plugin`"
36
+ end
37
+
38
+ rest_client = CFoundry::RestClient.new(service.url, client.token)
39
+ rest_client.trace = client.trace
40
+
41
+ instance_name = input[:name]
42
+ if !instance_name
43
+ instance_name = ask("Name")
44
+ end
45
+
46
+ sm_app_name = input[:sm_app_name]
47
+ if !sm_app_name
48
+ sm_app_name = ask("Service Manager App Name")
49
+ end
50
+
51
+ plan = service.service_plans.first
52
+
53
+ choices = ["Development","Functional Test", "Staging", "Stage Load","User Acceptance","BETA","Production"]
54
+
55
+ env = input[:env]
56
+ if !env || !choices.include?(env)
57
+ options = {
58
+ :choices => choices,
59
+ :display => proc { |choice|
60
+ if choice == "Development"
61
+ "Development"
62
+ elsif choice == "Functional Test"
63
+ "Functional Test"
64
+ elsif choice == "Staging"
65
+ "Staging"
66
+ elsif choice == "User Acceptance"
67
+ "User Acceptance"
68
+ elsif choice == "Stage Load"
69
+ "Stage Load"
70
+ elsif choice == "Production"
71
+ "Production"
72
+ elsif choice == "BETA"
73
+ "Beta"
74
+ end
75
+ },
76
+ :default => "Development",
77
+ :allow_other => false
78
+ }
79
+ env = ask("Service Manager environment to use", options)
80
+ end
81
+
82
+
83
+ # Register service with gateway
84
+ choices = ["y","n"]
85
+
86
+ prexisting = input[:prexisting]
87
+ if !prexisting || !choices.include?(prexisting)
88
+ options = {
89
+ :choices => choices,
90
+ :display => proc { |choice|
91
+ if choice == "y"
92
+ "yes"
93
+ elsif choice == "n"
94
+ "no"
95
+ end
96
+ },
97
+ :default => "y",
98
+ :allow_other => false
99
+ }
100
+ prexisting = ask("Use Pre-existing Service Manager application?",options)
101
+ end
102
+
103
+
104
+
105
+ if prexisting=='y'
106
+ payload = {
107
+ :space_guid => client.current_space.guid,
108
+ :name => instance_name,
109
+ :smApp => sm_app_name,
110
+ :Environment => env,
111
+ :prexisting => true
112
+ }
113
+
114
+ else
115
+
116
+ dutyPhone = input[:dutyPhone]
117
+ if !dutyPhone
118
+ dutyPhone = ask("Duty Phone (e.g. 1 801 555 5555 ")
119
+ end
120
+
121
+ primaryContact = input[:primaryContact]
122
+ if !primaryContact
123
+ primaryContact = ask("Primary Contact")
124
+ end
125
+
126
+ solutionManager = input[:solutionManager]
127
+ if !solutionManager
128
+ solutionManager = ask("Solution Manager")
129
+ end
130
+
131
+ supportGroup = input[:supportGroup]
132
+ if !supportGroup
133
+ supportGroup = ask("Support Group")
134
+ end
135
+
136
+
137
+ portfolioId = input[:portfolioId]
138
+ if !portfolioId
139
+ portfolioId = ask("Portfolio ID")
140
+ end
141
+
142
+ payload = {
143
+ :space_guid => client.current_space.guid,
144
+ :name => instance_name,
145
+ :smApp => sm_app_name,
146
+ :PrimaryContact => primaryContact,
147
+ :PrimarySupportGroup => supportGroup,
148
+ :Subtype2 => "CloudFoundryApp",
149
+ :Environment => env,
150
+ :Dept => "ICS Info And Comm Systems Dept [ICS]",
151
+ :DataClassification => "Internal Use",
152
+ :ChangeApprover => solutionManager,
153
+ :CriticalityClassification => "Low",
154
+ :DutyPhone => dutyPhone,
155
+ :SolutionManager => solutionManager,
156
+ :SupportContactName => "Support User",
157
+ :SuuportContactReason => "Primary Contact",
158
+ :PortfolioId => portfolioId,
159
+ :RegStandards => "None",
160
+ :SystemRiskLevel => "Low Risk"
161
+ }
162
+ end
163
+
164
+ options = {
165
+ :payload => JSON.generate(payload)
166
+ }
167
+ with_progress("Registering service ...") do
168
+ request, response = rest_client.request("POST", "/register", options)
169
+ if response[:status].to_i != 200
170
+ fail "Error registering Service Manager app with gateway:\n#{response[:body]}"
171
+ end
172
+ end
173
+
174
+ # Create service instance
175
+ instance = client.managed_service_instance
176
+ instance.name = instance_name
177
+
178
+ instance.service_plan = plan
179
+ instance.space = client.current_space
180
+
181
+ with_progress("Creating service #{c(instance.name, :name)}") do
182
+ instance.create!
183
+ end
184
+
185
+ instance
186
+ end
187
+
188
+ end
189
+
190
+ end
@@ -1,6 +1,5 @@
1
1
  require 'eventmachine'
2
2
  require 'interact/pretty'
3
- require 'socket'
4
3
 
5
4
  module TunnelClient
6
5
 
@@ -72,7 +71,6 @@ module TunnelClient
72
71
  case frame_type
73
72
  when 'E', 'e'
74
73
  # Error
75
- puts "Server error: #{frame_body}"
76
74
  close_connection
77
75
  raise frame_body
78
76
  when 'R', 'r'
@@ -1,3 +1,3 @@
1
1
  module LdsCfPlugin
2
- VERSION = "0.3.3".freeze
2
+ VERSION = "0.3.4".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lds-cf-plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-19 00:00:00.000000000 Z
12
+ date: 2013-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cf
@@ -92,6 +92,7 @@ files:
92
92
  - lib/lds-cf-plugin/plugin.rb
93
93
  - lib/lds-cf-plugin/tunnel/tunnelclient.rb
94
94
  - lib/lds-cf-plugin/wam_service.rb
95
+ - lib/lds-cf-plugin/servicemanager_service.rb
95
96
  homepage: http://ui.app.lds.org/
96
97
  licenses: []
97
98
  post_install_message: