egi-fedcloud-cloudhound 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d6d1e60e2fbc93b5e6d6747ea4373ffe878d9fc
|
4
|
+
data.tar.gz: b17621e8590fe41fef073fd3751b200ce49c00ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63b816bef03b604dcf574a783480e1bab4a52af61d0cda94fb4f91c0e0fc23946b945ed0f81ee25d6e3860814eb0ea3c1a169966b48bce9fb83aefbc6632e7b9
|
7
|
+
data.tar.gz: 7a61a4cd04db86768da65fbbdb59f14cb8b41e629e67b9a1c736b202d2cf559afe5bb7ae8ff35d901c1f037357649a25ec5ccf5266e12f00f7e9dadcec22a566
|
data/bin/egi-fedcloud-cloudhound
CHANGED
@@ -22,6 +22,29 @@ require 'egi-fedcloud-cloudhound'
|
|
22
22
|
class EgiFedcloudCloudhound < Thor
|
23
23
|
include Thor::Actions
|
24
24
|
|
25
|
+
desc "all", "Prints information for all available cloud sites"
|
26
|
+
method_option :credentials, :type => :string, :default => Egi::Fedcloud::Cloudhound::Settings.credentials,
|
27
|
+
:aliases => '-c', :desc => 'PEM file with a personal certificate and private key'
|
28
|
+
method_option :password, :type => :string, :default => nil,
|
29
|
+
:aliases => '-p', :desc => 'PEM private key password'
|
30
|
+
method_option :ca_path, :type => :string, :default => Egi::Fedcloud::Cloudhound::Settings.ca_path,
|
31
|
+
:aliases => '-x', :desc => 'Directory path to all trusted CA certificates'
|
32
|
+
method_option :gocdb_base_url, :type => :string, :default => Egi::Fedcloud::Cloudhound::Settings.gocdb_base_url,
|
33
|
+
:aliases => '-g', :desc => 'GOCDB endpoint URL'
|
34
|
+
method_option :appdb_base_url, :type => :string, :default => Egi::Fedcloud::Cloudhound::Settings.appdb_base_url,
|
35
|
+
:aliases => '-a', :desc => 'AppDB API endpoint URL'
|
36
|
+
method_option :debug, :type => :boolean, :default => Egi::Fedcloud::Cloudhound::Settings.debug,
|
37
|
+
:aliases => '-d', :desc => 'Enable debugging'
|
38
|
+
def all
|
39
|
+
init_log options[:debug]
|
40
|
+
|
41
|
+
$stdout.puts Egi::Fedcloud::Cloudhound::Formatter.as_table(
|
42
|
+
Egi::Fedcloud::Cloudhound::Extractor.find_all(
|
43
|
+
options
|
44
|
+
)
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
25
48
|
desc "ip IP_ADDRESS", "Prints information based on the provided IP address or IP address range"
|
26
49
|
method_option :credentials, :type => :string, :default => Egi::Fedcloud::Cloudhound::Settings.credentials,
|
27
50
|
:aliases => '-c', :desc => 'PEM file with a personal certificate and private key'
|
@@ -16,6 +16,20 @@ class Egi::Fedcloud::Cloudhound::Extractor
|
|
16
16
|
@@appdb ||= Egi::Fedcloud::Cloudhound::Appdb.new(options, password)
|
17
17
|
end
|
18
18
|
|
19
|
+
#
|
20
|
+
def find_all(options = {})
|
21
|
+
init options
|
22
|
+
|
23
|
+
Egi::Fedcloud::Cloudhound::Log.debug "[#{self}] Searching for all cloud-related contacts"
|
24
|
+
|
25
|
+
sites = @@gocdb.cloud_sites
|
26
|
+
sites.compact!
|
27
|
+
|
28
|
+
Egi::Fedcloud::Cloudhound::Log.debug "[#{self}] Found #{sites.count} cloud sites"
|
29
|
+
|
30
|
+
sites.collect { |site| site.contacts }
|
31
|
+
end
|
32
|
+
|
19
33
|
#
|
20
34
|
def find_by_ip(ip, options = {})
|
21
35
|
init options
|
@@ -3,6 +3,7 @@ require 'ox'
|
|
3
3
|
#
|
4
4
|
class Egi::Fedcloud::Cloudhound::Gocdb < Egi::Fedcloud::Cloudhound::Connector
|
5
5
|
|
6
|
+
GOCDB_SERVICE_ENDPOINT = '/gocdbpi/public/?method=get_service_endpoint'
|
6
7
|
GOCDB_SITES_URL = '/gocdbpi/private/?method=get_site'
|
7
8
|
GOCDB_PROD_SITES_URL = "#{GOCDB_SITES_URL}&production_status=Production"
|
8
9
|
GOCDB_CERT_PROD_SITES_URL = "#{GOCDB_PROD_SITES_URL}&certification_status=Certified"
|
@@ -10,8 +11,8 @@ class Egi::Fedcloud::Cloudhound::Gocdb < Egi::Fedcloud::Cloudhound::Connector
|
|
10
11
|
CLOUD_SERVICE_TYPES = [
|
11
12
|
"eu.egi.cloud.vm-management.occi",
|
12
13
|
"eu.egi.cloud.storage-management.cdmi",
|
13
|
-
"eu.egi.cloud.accounting",
|
14
|
-
"eu.egi.cloud.information.bdii",
|
14
|
+
# "eu.egi.cloud.accounting",
|
15
|
+
# "eu.egi.cloud.information.bdii",
|
15
16
|
"eu.egi.cloud.vm.metadata-vmcatcher",
|
16
17
|
]
|
17
18
|
|
@@ -37,6 +38,21 @@ class Egi::Fedcloud::Cloudhound::Gocdb < Egi::Fedcloud::Cloudhound::Connector
|
|
37
38
|
get_and_parse GOCDB_CERT_PROD_SITES_URL, 'cert_prod_sites'
|
38
39
|
end
|
39
40
|
|
41
|
+
#
|
42
|
+
def cloud_sites
|
43
|
+
sites.select { |site| cloud_site_names.include?(site.name) }
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
def production_cloud_sites
|
48
|
+
production_sites.select { |site| cloud_site_names.include?(site.name) }
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
def certified_production_cloud_sites
|
53
|
+
certified_production_sites.select { |site| cloud_site_names.include?(site.name) }
|
54
|
+
end
|
55
|
+
|
40
56
|
private
|
41
57
|
|
42
58
|
#
|
@@ -50,4 +66,22 @@ class Egi::Fedcloud::Cloudhound::Gocdb < Egi::Fedcloud::Cloudhound::Connector
|
|
50
66
|
|
51
67
|
results
|
52
68
|
end
|
69
|
+
|
70
|
+
#
|
71
|
+
def cloud_site_names
|
72
|
+
return @cached_cloud_site_names if instance_variable_defined?('@cached_cloud_site_names')
|
73
|
+
site_names = Set.new
|
74
|
+
|
75
|
+
Egi::Fedcloud::Cloudhound::Log.debug "[#{self.class}] Pulling service endpoints from #{GOCDB_SERVICE_ENDPOINT.inspect}"
|
76
|
+
xmldoc_service_endpoints = Ox.parse retrieve(GOCDB_SERVICE_ENDPOINT)
|
77
|
+
xmldoc_service_endpoints.locate("results/*").each do |service_endpoint|
|
78
|
+
service_endpoint.locate("SERVICE_TYPE").each do |service_type|
|
79
|
+
next unless service_type && CLOUD_SERVICE_TYPES.include?(service_type.text)
|
80
|
+
service_endpoint.locate("SITENAME").each { |service_site_name| site_names << service_site_name.text }
|
81
|
+
end
|
82
|
+
end
|
83
|
+
instance_variable_set('@cached_cloud_site_names', site_names.to_a)
|
84
|
+
|
85
|
+
@cached_cloud_site_names
|
86
|
+
end
|
53
87
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: egi-fedcloud-cloudhound
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Parak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|