fog-softlayer 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -7
- data/.gitignore +28 -0
- data/Gemfile +7 -0
- data/Rakefile +225 -1
- data/fog-softlayer.gemspec +15 -5
- data/lib/fog.rb +29 -0
- data/lib/fog/softlayer.rb +8 -0
- data/lib/fog/softlayer/compute.rb +0 -15
- data/lib/fog/softlayer/core.rb +6 -8
- data/lib/fog/softlayer/version.rb +7 -1
- data/spec/fog/compute/softlayer_spec.rb +6 -0
- data/tests/compute/flavors_helper.rb +40 -0
- data/tests/compute/server_helper.rb +33 -0
- data/tests/compute/servers_helper.rb +18 -0
- data/tests/helper.rb +68 -0
- data/tests/helpers/collection_helper.rb +102 -0
- data/tests/helpers/compute/flavors_helper.rb +34 -0
- data/tests/helpers/compute/server_helper.rb +27 -0
- data/tests/helpers/compute/servers_helper.rb +12 -0
- data/tests/helpers/formats_helper.rb +99 -0
- data/tests/helpers/formats_helper_tests.rb +111 -0
- data/tests/helpers/mock_helper.rb +111 -0
- data/tests/helpers/model_helper.rb +35 -0
- data/tests/helpers/responds_to_helper.rb +13 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +11 -0
- data/tests/lorem.txt +1 -0
- data/tests/softlayer/compute/helper.rb +7 -0
- data/tests/softlayer/compute/schema.rb +133 -0
- data/tests/softlayer/compute_tests.rb +34 -0
- data/tests/softlayer/helper.rb +9 -0
- data/tests/softlayer/models/compute/flavor_tests.rb +24 -0
- data/tests/softlayer/models/compute/image_tests.rb +25 -0
- data/tests/softlayer/models/compute/server_tests.rb +80 -0
- data/tests/softlayer/requests/compute/bmc_tests.rb +62 -0
- data/tests/softlayer/requests/compute/vm_tests.rb +90 -0
- metadata +254 -59
@@ -0,0 +1,111 @@
|
|
1
|
+
Shindo.tests('test_helper', 'meta') do
|
2
|
+
|
3
|
+
tests('comparing welcome data against schema') do
|
4
|
+
data = {:welcome => "Hello" }
|
5
|
+
data_matches_schema(:welcome => String) { data }
|
6
|
+
end
|
7
|
+
|
8
|
+
tests('#data_matches_schema') do
|
9
|
+
tests('when value matches schema expectation') do
|
10
|
+
data_matches_schema({"key" => String}) { {"key" => "Value"} }
|
11
|
+
end
|
12
|
+
|
13
|
+
tests('when values within an array all match schema expectation') do
|
14
|
+
data_matches_schema({"key" => [Integer]}) { {"key" => [1, 2]} }
|
15
|
+
end
|
16
|
+
|
17
|
+
tests('when nested values match schema expectation') do
|
18
|
+
data_matches_schema({"key" => {:nested_key => String}}) { {"key" => {:nested_key => "Value"}} }
|
19
|
+
end
|
20
|
+
|
21
|
+
tests('when collection of values all match schema expectation') do
|
22
|
+
data_matches_schema([{"key" => String}]) { [{"key" => "Value"}, {"key" => "Value"}] }
|
23
|
+
end
|
24
|
+
|
25
|
+
tests('when collection is empty although schema covers optional members') do
|
26
|
+
data_matches_schema([{"key" => String}], {:allow_optional_rules => true}) { [] }
|
27
|
+
end
|
28
|
+
|
29
|
+
tests('when additional keys are passed and not strict') do
|
30
|
+
data_matches_schema({"key" => String}, {:allow_extra_keys => true}) { {"key" => "Value", :extra => "Bonus"} }
|
31
|
+
end
|
32
|
+
|
33
|
+
tests('when value is nil and schema expects NilClass') do
|
34
|
+
data_matches_schema({"key" => NilClass}) { {"key" => nil} }
|
35
|
+
end
|
36
|
+
|
37
|
+
tests('when value and schema match as hashes') do
|
38
|
+
data_matches_schema({}) { {} }
|
39
|
+
end
|
40
|
+
|
41
|
+
tests('when value and schema match as arrays') do
|
42
|
+
data_matches_schema([]) { [] }
|
43
|
+
end
|
44
|
+
|
45
|
+
tests('when value is a Time') do
|
46
|
+
data_matches_schema({"time" => Time}) { {"time" => Time.now} }
|
47
|
+
end
|
48
|
+
|
49
|
+
tests('when key is missing but value should be NilClass (#1477)') do
|
50
|
+
data_matches_schema({"key" => NilClass}, {:allow_optional_rules => true}) { {} }
|
51
|
+
end
|
52
|
+
|
53
|
+
tests('when key is missing but value is nullable (#1477)') do
|
54
|
+
data_matches_schema({"key" => Fog::Nullable::String}, {:allow_optional_rules => true}) { {} }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
tests('#formats backwards compatible changes') do
|
59
|
+
|
60
|
+
tests('when value matches schema expectation') do
|
61
|
+
formats({"key" => String}) { {"key" => "Value"} }
|
62
|
+
end
|
63
|
+
|
64
|
+
tests('when values within an array all match schema expectation') do
|
65
|
+
formats({"key" => [Integer]}) { {"key" => [1, 2]} }
|
66
|
+
end
|
67
|
+
|
68
|
+
tests('when nested values match schema expectation') do
|
69
|
+
formats({"key" => {:nested_key => String}}) { {"key" => {:nested_key => "Value"}} }
|
70
|
+
end
|
71
|
+
|
72
|
+
tests('when collection of values all match schema expectation') do
|
73
|
+
formats([{"key" => String}]) { [{"key" => "Value"}, {"key" => "Value"}] }
|
74
|
+
end
|
75
|
+
|
76
|
+
tests('when collection is empty although schema covers optional members') do
|
77
|
+
formats([{"key" => String}]) { [] }
|
78
|
+
end
|
79
|
+
|
80
|
+
tests('when additional keys are passed and not strict') do
|
81
|
+
formats({"key" => String}, false) { {"key" => "Value", :extra => "Bonus"} }
|
82
|
+
end
|
83
|
+
|
84
|
+
tests('when value is nil and schema expects NilClass') do
|
85
|
+
formats({"key" => NilClass}) { {"key" => nil} }
|
86
|
+
end
|
87
|
+
|
88
|
+
tests('when value and schema match as hashes') do
|
89
|
+
formats({}) { {} }
|
90
|
+
end
|
91
|
+
|
92
|
+
tests('when value and schema match as arrays') do
|
93
|
+
formats([]) { [] }
|
94
|
+
end
|
95
|
+
|
96
|
+
tests('when value is a Time') do
|
97
|
+
formats({"time" => Time}) { {"time" => Time.now} }
|
98
|
+
end
|
99
|
+
|
100
|
+
tests('when key is missing but value should be NilClass (#1477)') do
|
101
|
+
formats({"key" => NilClass}) { {} }
|
102
|
+
end
|
103
|
+
|
104
|
+
tests('when key is missing but value is nullable (#1477)') do
|
105
|
+
formats({"key" => Fog::Nullable::String}) { {} }
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# Use so you can run in mock mode from the command line
|
2
|
+
#
|
3
|
+
# FOG_MOCK=true fog
|
4
|
+
|
5
|
+
if ENV["FOG_MOCK"] == "true"
|
6
|
+
Fog.mock!
|
7
|
+
end
|
8
|
+
|
9
|
+
# if in mocked mode, fill in some fake credentials for us
|
10
|
+
if Fog.mock?
|
11
|
+
Fog.credentials = {
|
12
|
+
:aws_access_key_id => 'aws_access_key_id',
|
13
|
+
:aws_secret_access_key => 'aws_secret_access_key',
|
14
|
+
:ia_access_key_id => 'aws_access_key_id',
|
15
|
+
:ia_secret_access_key => 'aws_secret_access_key',
|
16
|
+
:atmos_storage_token => 'atmos_token',
|
17
|
+
:atmos_storage_secret => 'atmos_secret',
|
18
|
+
:atmos_storage_endpoint => 'http://atmos.is.cool:1000/test1.0',
|
19
|
+
:bluebox_api_key => 'bluebox_api_key',
|
20
|
+
:bluebox_customer_id => 'bluebox_customer_id',
|
21
|
+
:brightbox_client_id => 'brightbox_client_id',
|
22
|
+
:brightbox_secret => 'brightbox_secret',
|
23
|
+
:cloudstack_disk_offering_id => '',
|
24
|
+
:cloudstack_host => 'http://cloudstack.example.org',
|
25
|
+
:cloudstack_network_ids => '',
|
26
|
+
:cloudstack_service_offering_id => '4437ac6c-9fe3-477a-57ec-60a5a45896a4',
|
27
|
+
:cloudstack_template_id => '8a31cf9c-f248-0588-256e-9dbf58785216',
|
28
|
+
:cloudstack_zone_id => 'c554c592-e09c-9df5-7688-4a32754a4305',
|
29
|
+
:clodo_api_key => 'clodo_api_key',
|
30
|
+
:clodo_username => 'clodo_username',
|
31
|
+
:digitalocean_api_key => 'digitalocean_api_key',
|
32
|
+
:digitalocean_client_id => 'digitalocean_client_id',
|
33
|
+
:dnsimple_email => 'dnsimple_email',
|
34
|
+
:dnsimple_password => 'dnsimple_password',
|
35
|
+
:dnsmadeeasy_api_key => 'dnsmadeeasy_api_key',
|
36
|
+
:dnsmadeeasy_secret_key => 'dnsmadeeasy_secret_key',
|
37
|
+
:ecloud_username => 'ecloud_username',
|
38
|
+
:ecloud_password => 'ecloud_password',
|
39
|
+
:ecloud_versions_uri => 'http://ecloud.versions.uri',
|
40
|
+
:glesys_username => 'glesys_username',
|
41
|
+
:glesys_api_key => 'glesys_api_key',
|
42
|
+
:go_grid_api_key => 'go_grid_api_key',
|
43
|
+
:go_grid_shared_secret => 'go_grid_shared_secret',
|
44
|
+
:google_storage_access_key_id => 'google_storage_access_key_id',
|
45
|
+
:google_storage_secret_access_key => 'google_storage_secret_access_key',
|
46
|
+
:google_project => 'google_project_name',
|
47
|
+
:google_client_email => 'fake@developer.gserviceaccount.com',
|
48
|
+
:google_key_location => '~/fake.p12',
|
49
|
+
:hp_access_key => 'hp_access_key',
|
50
|
+
:hp_secret_key => 'hp_secret_key',
|
51
|
+
:hp_tenant_id => 'hp_tenant_id',
|
52
|
+
:hp_avl_zone => 'hp_avl_zone',
|
53
|
+
:os_account_meta_temp_url_key => 'os_account_meta_temp_url_key',
|
54
|
+
:ibm_username => 'ibm_username',
|
55
|
+
:ibm_password => 'ibm_password',
|
56
|
+
:joyent_username => "joyentuser",
|
57
|
+
:joyent_password => "joyentpass",
|
58
|
+
:linode_api_key => 'linode_api_key',
|
59
|
+
:local_root => '~/.fog',
|
60
|
+
:bare_metal_cloud_password => 'bare_metal_cloud_password',
|
61
|
+
:bare_metal_cloud_username => 'bare_metal_cloud_username',
|
62
|
+
:ninefold_compute_key => 'ninefold_compute_key',
|
63
|
+
:ninefold_compute_secret => 'ninefold_compute_secret',
|
64
|
+
:ninefold_storage_secret => 'ninefold_storage_secret',
|
65
|
+
:ninefold_storage_token => 'ninefold_storage_token',
|
66
|
+
# :public_key_path => '~/.ssh/id_rsa.pub',
|
67
|
+
# :private_key_path => '~/.ssh/id_rsa',
|
68
|
+
:openstack_api_key => 'openstack_api_key',
|
69
|
+
:openstack_username => 'openstack_username',
|
70
|
+
:openstack_tenant => 'openstack_tenant',
|
71
|
+
:openstack_auth_url => 'http://openstack:35357/v2.0/tokens',
|
72
|
+
:ovirt_url => 'http://ovirt:8080/api',
|
73
|
+
:ovirt_username => 'admin@internal',
|
74
|
+
:ovirt_password => '123123',
|
75
|
+
:libvirt_uri => 'qemu://libvirt/system',
|
76
|
+
:rackspace_api_key => 'rackspace_api_key',
|
77
|
+
:rackspace_username => 'rackspace_username',
|
78
|
+
:riakcs_access_key_id => 'riakcs_access_key_id',
|
79
|
+
:riakcs_secret_access_key => 'riakcs_secret_access_key',
|
80
|
+
:sakuracloud_api_token => 'sakuracloud_api_token',
|
81
|
+
:sakuracloud_api_token_secret => 'sakuracloud_api_token_secret',
|
82
|
+
:storm_on_demand_username => 'storm_on_demand_username',
|
83
|
+
:storm_on_demand_password => 'storm_on_demand_password',
|
84
|
+
:vcloud_host => 'vcloud_host',
|
85
|
+
:vcloud_password => 'vcloud_password',
|
86
|
+
:vcloud_username => 'vcloud_username',
|
87
|
+
:vcloud_director_host => 'vcloud-director-host',
|
88
|
+
:vcloud_director_password => 'vcloud_director_password',
|
89
|
+
:vcloud_director_username => 'vcd_user@vcd_org_name',
|
90
|
+
:voxel_api_key => 'voxel_api_key',
|
91
|
+
:voxel_api_secret => 'voxel_api_secret',
|
92
|
+
:zerigo_email => 'zerigo_email',
|
93
|
+
:zerigo_token => 'zerigo_token',
|
94
|
+
:dynect_customer => 'dynect_customer',
|
95
|
+
:dynect_username => 'dynect_username',
|
96
|
+
:dynect_password => 'dynect_password',
|
97
|
+
:vsphere_server => 'virtualcenter.lan',
|
98
|
+
:vsphere_username => 'apiuser',
|
99
|
+
:vsphere_password => 'apipassword',
|
100
|
+
:vsphere_expected_pubkey_hash => 'abcdef1234567890',
|
101
|
+
:libvirt_uri => 'qemu:///system',
|
102
|
+
:libvirt_username => 'root',
|
103
|
+
:libvirt_password => 'password',
|
104
|
+
:cloudsigma_username => 'csuname',
|
105
|
+
:cloudsigma_password => 'cspass',
|
106
|
+
:docker_username => 'docker-fan',
|
107
|
+
:docker_password => 'i<3docker',
|
108
|
+
:docker_email => 'dockerfan@gmail.com',
|
109
|
+
:docker_url => 'unix://var/run/docker.sock'
|
110
|
+
}.merge(Fog.credentials)
|
111
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
def model_tests(collection, params = {}, mocks_implemented = true)
|
2
|
+
|
3
|
+
tests('success') do
|
4
|
+
|
5
|
+
@instance = collection.new(params)
|
6
|
+
|
7
|
+
tests("#save").succeeds do
|
8
|
+
pending if Fog.mocking? && !mocks_implemented
|
9
|
+
@instance.save
|
10
|
+
end
|
11
|
+
|
12
|
+
if block_given?
|
13
|
+
yield
|
14
|
+
end
|
15
|
+
|
16
|
+
tests("#destroy").succeeds do
|
17
|
+
pending if Fog.mocking? && !mocks_implemented
|
18
|
+
@instance.destroy
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
# Generates a unique identifier with a random differentiator.
|
26
|
+
# Useful when rapidly re-running tests, so we don't have to wait
|
27
|
+
# serveral minutes for deleted objects to disappear from the API
|
28
|
+
# E.g. 'fog-test-1234'
|
29
|
+
def uniq_id(base_name = 'fog-test')
|
30
|
+
# random_differentiator
|
31
|
+
suffix = rand(65536).to_s(16).rjust(4, '0')
|
32
|
+
[base_name, suffix] * '-'
|
33
|
+
end
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,107 @@
|
|
1
|
+
Shindo.tests('Fog::Schema::DataValidator', 'meta') do
|
2
|
+
|
3
|
+
validator = Fog::Schema::DataValidator.new
|
4
|
+
|
5
|
+
tests('#validate') do
|
6
|
+
|
7
|
+
tests('returns true') do
|
8
|
+
|
9
|
+
returns(true, 'when value matches schema expectation') do
|
10
|
+
validator.validate({"key" => "Value"}, {"key" => String})
|
11
|
+
end
|
12
|
+
|
13
|
+
returns(true, 'when values within an array all match schema expectation') do
|
14
|
+
validator.validate({"key" => [1, 2]}, {"key" => [Integer]})
|
15
|
+
end
|
16
|
+
|
17
|
+
returns(true, 'when nested values match schema expectation') do
|
18
|
+
validator.validate({"key" => {:nested_key => "Value"}}, {"key" => {:nested_key => String}})
|
19
|
+
end
|
20
|
+
|
21
|
+
returns(true, 'when collection of values all match schema expectation') do
|
22
|
+
validator.validate([{"key" => "Value"}, {"key" => "Value"}], [{"key" => String}])
|
23
|
+
end
|
24
|
+
|
25
|
+
returns(true, 'when collection is empty although schema covers optional members') do
|
26
|
+
validator.validate([], [{"key" => String}])
|
27
|
+
end
|
28
|
+
|
29
|
+
returns(true, 'when additional keys are passed and not strict') do
|
30
|
+
validator.validate({"key" => "Value", :extra => "Bonus"}, {"key" => String}, {:allow_extra_keys => true})
|
31
|
+
end
|
32
|
+
|
33
|
+
returns(true, 'when value is nil and schema expects NilClass') do
|
34
|
+
validator.validate({"key" => nil}, {"key" => NilClass})
|
35
|
+
end
|
36
|
+
|
37
|
+
returns(true, 'when value and schema match as hashes') do
|
38
|
+
validator.validate({}, {})
|
39
|
+
end
|
40
|
+
|
41
|
+
returns(true, 'when value and schema match as arrays') do
|
42
|
+
validator.validate([], [])
|
43
|
+
end
|
44
|
+
|
45
|
+
returns(true, 'when value is a Time') do
|
46
|
+
validator.validate({"time" => Time.now}, {"time" => Time})
|
47
|
+
end
|
48
|
+
|
49
|
+
returns(true, 'when key is missing but value should be NilClass (#1477)') do
|
50
|
+
validator.validate({}, {"key" => NilClass}, {:allow_optional_rules => true})
|
51
|
+
end
|
52
|
+
|
53
|
+
returns(true, 'when key is missing but value is nullable (#1477)') do
|
54
|
+
validator.validate({}, {"key" => Fog::Nullable::String}, {:allow_optional_rules => true})
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
tests('returns false') do
|
60
|
+
|
61
|
+
returns(false, 'when value does not match schema expectation') do
|
62
|
+
validator.validate({"key" => nil}, {"key" => String})
|
63
|
+
end
|
64
|
+
|
65
|
+
returns(false, 'when key formats do not match') do
|
66
|
+
validator.validate({"key" => "Value"}, {:key => String})
|
67
|
+
end
|
68
|
+
|
69
|
+
returns(false, 'when additional keys are passed and strict') do
|
70
|
+
validator.validate({"key" => "Missing"}, {})
|
71
|
+
end
|
72
|
+
|
73
|
+
returns(false, 'when some keys do not appear') do
|
74
|
+
validator.validate({}, {"key" => String})
|
75
|
+
end
|
76
|
+
|
77
|
+
returns(false, 'when collection contains a member that does not match schema') do
|
78
|
+
validator.validate([{"key" => "Value"}, {"key" => 5}], [{"key" => String}])
|
79
|
+
end
|
80
|
+
|
81
|
+
returns(false, 'when collection has multiple schema patterns') do
|
82
|
+
validator.validate([{"key" => "Value"}], [{"key" => Integer}, {"key" => String}])
|
83
|
+
end
|
84
|
+
|
85
|
+
returns(false, 'when hash and array are compared') do
|
86
|
+
validator.validate({}, [])
|
87
|
+
end
|
88
|
+
|
89
|
+
returns(false, 'when array and hash are compared') do
|
90
|
+
validator.validate([], {})
|
91
|
+
end
|
92
|
+
|
93
|
+
returns(false, 'when a hash is expected but another data type is found') do
|
94
|
+
validator.validate({"key" => {:nested_key => []}}, {"key" => {:nested_key => {}}})
|
95
|
+
end
|
96
|
+
|
97
|
+
returns(false, 'when key is missing but value should be NilClass (#1477)') do
|
98
|
+
validator.validate({}, {"key" => NilClass}, {:allow_optional_rules => false})
|
99
|
+
end
|
100
|
+
|
101
|
+
returns(false, 'when key is missing but value is nullable (#1477)') do
|
102
|
+
validator.validate({}, {"key" => Fog::Nullable::String}, {:allow_optional_rules => false})
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
data/tests/lorem.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
@@ -0,0 +1,133 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
|
3
|
+
# © Copyright IBM Corporation 2014.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
module Fog
|
8
|
+
module Softlayer
|
9
|
+
module Nullable
|
10
|
+
module Account; end
|
11
|
+
module BareMetal; end
|
12
|
+
module Collected; end
|
13
|
+
module Collection; end
|
14
|
+
module VirtualGuest; end
|
15
|
+
module Image; end
|
16
|
+
module IPV4; end
|
17
|
+
module LoadBalancer; end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Hash.send :include, Fog::Softlayer::Nullable::Account
|
23
|
+
NilClass.send :include, Fog::Softlayer::Nullable::Account
|
24
|
+
|
25
|
+
Hash.send :include, Fog::Softlayer::Nullable::BareMetal
|
26
|
+
NilClass.send :include, Fog::Softlayer::Nullable::BareMetal
|
27
|
+
|
28
|
+
Hash.send :include, Fog::Softlayer::Nullable::Collected
|
29
|
+
NilClass.send :include, Fog::Softlayer::Nullable::Collected
|
30
|
+
|
31
|
+
Hash.send :include, Fog::Softlayer::Nullable::Collection
|
32
|
+
NilClass.send :include, Fog::Softlayer::Nullable::Collection
|
33
|
+
|
34
|
+
Hash.send :include, Fog::Softlayer::Nullable::VirtualGuest
|
35
|
+
NilClass.send :include, Fog::Softlayer::Nullable::VirtualGuest
|
36
|
+
|
37
|
+
Hash.send :include, Fog::Softlayer::Nullable::Image
|
38
|
+
NilClass.send :include, Fog::Softlayer::Nullable::Image
|
39
|
+
|
40
|
+
Hash.send :include, Fog::Softlayer::Nullable::IPV4
|
41
|
+
NilClass.send :include, Fog::Softlayer::Nullable::IPV4
|
42
|
+
|
43
|
+
Hash.send :include, Fog::Softlayer::Nullable::LoadBalancer
|
44
|
+
NilClass.send :include, Fog::Softlayer::Nullable::LoadBalancer
|
45
|
+
|
46
|
+
|
47
|
+
class Softlayer
|
48
|
+
module Compute
|
49
|
+
module Formats
|
50
|
+
module Struct
|
51
|
+
## nothing here yet
|
52
|
+
end
|
53
|
+
|
54
|
+
module BareMetal
|
55
|
+
SERVER = {
|
56
|
+
"accountId" => String,
|
57
|
+
"createDate" => String,
|
58
|
+
"dedicatedAccountHostOnlyFlag" => Fog::Nullable::Boolean,
|
59
|
+
"domain" => Fog::Nullable::String,
|
60
|
+
"fullyQualifiedDomainName" => Fog::Nullable::String,
|
61
|
+
"hostname" => Fog::Nullable::String,
|
62
|
+
"id" => String,
|
63
|
+
"lastPowerStateId" => Fog::Nullable::String,
|
64
|
+
"lastVerifiedDate" => Fog::Nullable::String,
|
65
|
+
"maxCpu" => Fog::Nullable::String,
|
66
|
+
"maxCpuUnits" => String,
|
67
|
+
"maxMemory" => Fog::Nullable::String,
|
68
|
+
"metricPollDate" => Fog::Nullable::String,
|
69
|
+
"modifyDate" => Fog::Nullable::String,
|
70
|
+
"startCpus" => Fog::Nullable::String,
|
71
|
+
"statusId" => Integer,
|
72
|
+
"globalIdentifier" => String
|
73
|
+
}
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
module VirtualGuest
|
78
|
+
SERVER = {
|
79
|
+
"accountId" => String,
|
80
|
+
"createDate" => String,
|
81
|
+
"dedicatedAccountHostOnlyFlag" => Fog::Nullable::Boolean,
|
82
|
+
"domain" => String,
|
83
|
+
"fullyQualifiedDomainName" => Fog::Nullable::String,
|
84
|
+
"hostname" => String,
|
85
|
+
"id" => String,
|
86
|
+
"lastPowerStateId" => Fog::Nullable::String,
|
87
|
+
"lastVerifiedDate" => Fog::Nullable::String,
|
88
|
+
"maxCpu" => Fog::Nullable::String,
|
89
|
+
"maxCpuUnits" => String,
|
90
|
+
"maxMemory" => Integer,
|
91
|
+
"metricPollDate" => Fog::Nullable::String,
|
92
|
+
"modifyDate" => Fog::Nullable::String,
|
93
|
+
"startCpus" => Integer,
|
94
|
+
"statusId" => Integer,
|
95
|
+
"globalIdentifier" => String
|
96
|
+
}
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
module Collected
|
101
|
+
SERVER = {
|
102
|
+
:id => Fog::Nullable::Integer,
|
103
|
+
:hostname => Fog::Nullable::String,
|
104
|
+
:domain => Fog::Nullable::String,
|
105
|
+
:fqdn => Fog::Nullable::String,
|
106
|
+
:cpu => Fog::Nullable::String,
|
107
|
+
:ram => Fog::Nullable,
|
108
|
+
:disk => Fog::Nullable::Array,
|
109
|
+
:private_ip => Fog::Nullable::String,
|
110
|
+
:public_ip => Fog::Nullable::String,
|
111
|
+
:flavor_id => Fog::Nullable::String,
|
112
|
+
:bare_metal => Fog::Nullable::Boolean,
|
113
|
+
:os_code => Fog::Nullable::String,
|
114
|
+
:image_id => Hash,
|
115
|
+
:ephemeral_storage => Fog::Nullable::Boolean,
|
116
|
+
:created_at => Fog::Nullable::Time,
|
117
|
+
:last_verified_date => Fog::Nullable::Time,
|
118
|
+
:metric_poll_date => Fog::Nullable::Time,
|
119
|
+
:modify_date => Fog::Nullable::Time,
|
120
|
+
:account_id => Fog::Nullable::Integer,
|
121
|
+
:datacenter => Fog::Nullable::String,
|
122
|
+
:single_tenant => Fog::Nullable::Boolean,
|
123
|
+
:global_identifier => Fog::Nullable::String,
|
124
|
+
:hourly_billing_flag => Fog::Nullable::Boolean,
|
125
|
+
}
|
126
|
+
end
|
127
|
+
|
128
|
+
module Collection
|
129
|
+
SERVERS = [Softlayer::Compute::Formats::Collected::SERVER]
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|