diff options
Diffstat (limited to 'provider_base/files/service-definitions')
-rw-r--r-- | provider_base/files/service-definitions/eip-service.json.erb | 37 | ||||
-rw-r--r-- | provider_base/files/service-definitions/provider.json.erb | 20 |
2 files changed, 57 insertions, 0 deletions
diff --git a/provider_base/files/service-definitions/eip-service.json.erb b/provider_base/files/service-definitions/eip-service.json.erb new file mode 100644 index 00000000..8dc7211d --- /dev/null +++ b/provider_base/files/service-definitions/eip-service.json.erb @@ -0,0 +1,37 @@ +<%= + def underscore(words) + words = words.to_s.dup + words.downcase! + words.gsub! /[^a-z]/, '_' + words + end + + hsh = {} + hsh["serial"] = 1 + hsh["version"] = 1 + clusters = {} + gateways = [] + global.services['openvpn'].node_list.each_node do |node| + next if node.vagrant? + gateway = {} + gateway["capabilities"] = node.openvpn.pick( + :ports, :protocols, :user_ips, :adblock, :filter_dns) + gateway["capabilities"]["transport"] = ["openvpn"] + gateway["ip_address"] = node.openvpn.gateway_address + gateway["host"] = node.domain.full + gateway["cluster"] = underscore(node.openvpn.location) + gateways << gateway + clusters[gateway["cluster"]] ||= { + "name" => gateway["cluster"], + "label" => {"en" => node.openvpn.location} + } + end + hsh["gateways"] = gateways + hsh["clusters"] = clusters.values + hsh["openvpn_configuration"] = { + "tls-cipher" => "DHE-RSA-AES128-SHA", + "auth" => "SHA1", + "cipher" => "AES-128-CBC" + } + generate_json hsh +%>
\ No newline at end of file diff --git a/provider_base/files/service-definitions/provider.json.erb b/provider_base/files/service-definitions/provider.json.erb new file mode 100644 index 00000000..f26f25a2 --- /dev/null +++ b/provider_base/files/service-definitions/provider.json.erb @@ -0,0 +1,20 @@ +<%= + hsh = {} + + # grab some fields from provider.json + hsh = global.provider.pick( + :languages, :description, :name, + :enrollment_policy, :default_language, :domain + ) + + # advertise services that are 'user services' + hsh['services'] = global.services[:service_type => :user_service].field(:name) + + hsh['api_version'] = "1" + hsh['api_uri'] = "https://" + api.domain + ':' + api.port + + hsh['ca_cert_uri'] = 'https://' + global.provider.domain + '/ca.crt' + hsh['ca_cert_fingerprint'] = fingerprint(:ca_cert) + + generate_json hsh +%>
\ No newline at end of file |