fog 0.3.34 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +6 -6
- data/README.rdoc +26 -7
- data/Rakefile +7 -1
- data/examples/dns_tests.rb +76 -0
- data/examples/{storage.rb → storage_tests.rb} +15 -15
- data/fog.gemspec +4 -4
- data/lib/fog.rb +1 -1
- data/lib/fog/aws.rb +19 -54
- data/lib/fog/aws/dns.rb +5 -1
- data/lib/fog/aws/models/compute/security_group.rb +128 -0
- data/lib/fog/aws/models/dns/record.rb +64 -0
- data/lib/fog/aws/models/dns/records.rb +47 -0
- data/lib/fog/aws/models/dns/zone.rb +53 -0
- data/lib/fog/aws/models/dns/zones.rb +33 -0
- data/lib/fog/aws/models/storage/file.rb +14 -2
- data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +1 -1
- data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +3 -1
- data/lib/fog/aws/requests/simpledb/create_domain.rb +1 -0
- data/lib/fog/aws/requests/simpledb/delete_attributes.rb +0 -2
- data/lib/fog/aws/requests/simpledb/delete_domain.rb +1 -0
- data/lib/fog/aws/requests/simpledb/domain_metadata.rb +1 -0
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +1 -0
- data/lib/fog/aws/requests/simpledb/list_domains.rb +3 -2
- data/lib/fog/aws/requests/simpledb/put_attributes.rb +2 -2
- data/lib/fog/aws/requests/simpledb/select.rb +1 -0
- data/lib/fog/brightbox/compute.rb +9 -0
- data/lib/fog/brightbox/models/compute/load_balancer.rb +50 -0
- data/lib/fog/brightbox/models/compute/load_balancers.rb +28 -0
- data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +28 -0
- data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +27 -0
- data/lib/fog/brightbox/requests/compute/destroy_load_balancer.rb +28 -0
- data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +28 -0
- data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +27 -0
- data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +28 -0
- data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +29 -0
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/dns.rb +25 -0
- data/lib/fog/core/mock.rb +34 -0
- data/lib/fog/google/models/storage/file.rb +14 -2
- data/lib/fog/linode/dns.rb +4 -0
- data/lib/fog/linode/models/dns/record.rb +69 -0
- data/lib/fog/linode/models/dns/records.rb +37 -0
- data/lib/fog/linode/models/dns/zone.rb +84 -0
- data/lib/fog/linode/models/dns/zones.rb +29 -0
- data/lib/fog/linode/requests/dns/domain_create.rb +2 -3
- data/lib/fog/linode/requests/dns/domain_resource_create.rb +3 -4
- data/lib/fog/linode/requests/dns/domain_resource_list.rb +5 -2
- data/lib/fog/linode/requests/dns/domain_resource_update.rb +2 -2
- data/lib/fog/linode/requests/dns/domain_update.rb +2 -2
- data/lib/fog/rackspace/requests/compute/create_image.rb +1 -1
- data/lib/fog/rackspace/requests/compute/create_server.rb +1 -1
- data/lib/fog/rackspace/requests/compute/get_flavor_details.rb +19 -1
- data/lib/fog/rackspace/requests/compute/list_flavors.rb +14 -1
- data/lib/fog/rackspace/requests/compute/list_flavors_detail.rb +14 -1
- data/lib/fog/slicehost/bin.rb +1 -1
- data/lib/fog/slicehost/dns.rb +4 -0
- data/lib/fog/slicehost/models/dns/record.rb +66 -0
- data/lib/fog/slicehost/models/dns/records.rb +36 -0
- data/lib/fog/slicehost/models/dns/zone.rb +69 -0
- data/lib/fog/slicehost/models/dns/zones.rb +28 -0
- data/lib/fog/slicehost/requests/dns/create_record.rb +2 -3
- data/lib/fog/slicehost/requests/dns/get_record.rb +1 -1
- data/lib/fog/vcloud/terremark/ecloud.rb +1 -1
- data/lib/fog/zerigo/models/dns/record.rb +14 -3
- data/lib/fog/zerigo/models/dns/records.rb +1 -1
- data/lib/fog/zerigo/models/dns/zone.rb +7 -1
- data/lib/fog/zerigo/models/dns/zones.rb +1 -1
- data/spec/spec_helper.rb +0 -24
- data/tests/aws/requests/iam/helper.rb +15 -0
- data/tests/aws/requests/simpledb/attributes_tests.rb +75 -0
- data/tests/aws/requests/simpledb/domain_tests.rb +51 -0
- data/tests/aws/requests/simpledb/helper.rb +16 -0
- data/tests/compute/helper.rb +36 -0
- data/tests/compute/models/flavors_tests.rb +9 -0
- data/tests/compute/models/server_tests.rb +9 -0
- data/tests/compute/models/servers_tests.rb +9 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/address_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/availability_zone_tests.rb +0 -0
- data/tests/{aws → compute/requests/aws}/helper.rb +0 -12
- data/tests/{aws/requests/compute → compute/requests/aws}/image_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/instance_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/key_pair_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/region_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/security_group_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/snapshot_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/tag_tests.rb +0 -0
- data/tests/{aws/requests/compute → compute/requests/aws}/volume_tests.rb +0 -0
- data/tests/{bluebox/requests/compute → compute/requests/bluebox}/block_tests.rb +0 -0
- data/tests/{bluebox → compute/requests/bluebox}/helper.rb +0 -0
- data/tests/{bluebox/requests/compute → compute/requests/bluebox}/product_tests.rb +0 -0
- data/tests/{bluebox/requests/compute → compute/requests/bluebox}/template_tests.rb +0 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/account_tests.rb +0 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/api_client_tests.rb +0 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/cloud_ip_tests.rb +15 -7
- data/tests/{brightbox → compute/requests/brightbox}/helper.rb +68 -22
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/image_tests.rb +0 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/interface_tests.rb +0 -0
- data/tests/compute/requests/brightbox/load_balancer_tests.rb +74 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/server_tests.rb +1 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/server_type_tests.rb +1 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/user_tests.rb +0 -0
- data/tests/{brightbox/requests/compute → compute/requests/brightbox}/zone_tests.rb +1 -0
- data/tests/{go_grid/requests/compute → compute/requests/go_grid}/image_tests.rb +0 -0
- data/tests/{linode/requests/compute → compute/requests/linode}/datacenter_tests.rb +0 -0
- data/tests/{linode/requests/compute → compute/requests/linode}/distribution_tests.rb +0 -0
- data/tests/{linode → compute/requests/linode}/helper.rb +0 -0
- data/tests/{linode/requests/compute → compute/requests/linode}/linode_tests.rb +0 -0
- data/tests/{linode/requests/compute → compute/requests/linode}/linodeplans_tests.rb +0 -0
- data/tests/{rackspace/requests/compute → compute/requests/rackspace}/address_tests.rb +0 -0
- data/tests/{rackspace/requests/compute → compute/requests/rackspace}/flavor_tests.rb +0 -0
- data/tests/{rackspace → compute/requests/rackspace}/helper.rb +0 -0
- data/tests/{rackspace/requests/compute → compute/requests/rackspace}/image_tests.rb +7 -9
- data/tests/compute/requests/rackspace/resize_tests.rb +33 -0
- data/tests/{rackspace/requests/compute → compute/requests/rackspace}/server_tests.rb +0 -0
- data/tests/{slicehost/requests/compute → compute/requests/slicehost}/backup_tests.rb +0 -0
- data/tests/{slicehost/requests/compute → compute/requests/slicehost}/flavor_tests.rb +0 -0
- data/tests/{slicehost/requests/compute → compute/requests/slicehost}/image_tests.rb +0 -0
- data/tests/{slicehost/requests/compute → compute/requests/slicehost}/slice_tests.rb +0 -0
- data/tests/dns/helper.rb +19 -0
- data/tests/dns/models/record_tests.rb +25 -0
- data/tests/dns/models/records_tests.rb +25 -0
- data/tests/dns/models/zone_tests.rb +13 -0
- data/tests/dns/models/zones_tests.rb +13 -0
- data/tests/{aws/requests/dns → dns/requests/aws}/dns_tests.rb +0 -0
- data/tests/{linode/requests/dns → dns/requests/linode}/dns_tests.rb +0 -0
- data/tests/{slicehost/requests/dns_tests → dns/requests/slicehost}/dns_tests.rb +0 -0
- data/tests/{zerigo/requests/dns → dns/requests/zerigo}/dns_tests.rb +0 -0
- data/tests/helper.rb +1 -100
- data/tests/helpers/{collection_tests.rb → collection_helper.rb} +0 -0
- data/tests/helpers/compute/{flavors_tests.rb → flavors_helper.rb} +0 -0
- data/tests/helpers/compute/{server_tests.rb → server_helper.rb} +0 -0
- data/tests/helpers/compute/{servers_tests.rb → servers_helper.rb} +0 -0
- data/tests/helpers/formats_helper.rb +68 -0
- data/tests/{helper_tests.rb → helpers/formats_helper_tests.rb} +0 -0
- data/tests/helpers/{model_tests.rb → model_helper.rb} +0 -0
- data/tests/helpers/responds_to_helper.rb +13 -0
- data/tests/helpers/succeeds_helper.rb +12 -0
- data/tests/storage/helper.rb +16 -0
- data/tests/storage/models/directories_tests.rb +13 -0
- data/tests/storage/models/directory_test.rb +24 -0
- data/tests/storage/models/file_tests.rb +41 -0
- data/tests/storage/models/files_tests.rb +26 -0
- data/tests/{aws/requests/storage → storage/requests/aws}/bucket_tests.rb +0 -0
- data/tests/{aws/requests/storage → storage/requests/aws}/multipart_upload_tests.rb +0 -0
- data/tests/{aws/requests/storage → storage/requests/aws}/object_tests.rb +0 -0
- data/tests/{google/requests/storage → storage/requests/google}/bucket_tests.rb +0 -0
- data/tests/{google/requests/storage → storage/requests/google}/object_tests.rb +0 -0
- data/tests/{rackspace/requests/storage → storage/requests/rackspace}/container_tests.rb +0 -0
- data/tests/{rackspace/requests/storage → storage/requests/rackspace}/object_tests.rb +0 -0
- metadata +195 -224
- data/examples/bluebox_create.rb +0 -33
- data/examples/dns_methods.rb +0 -389
- data/spec/aws/requests/simpledb/batch_put_attributes_spec.rb +0 -31
- data/spec/aws/requests/simpledb/create_domain_spec.rb +0 -29
- data/spec/aws/requests/simpledb/delete_attributes_spec.rb +0 -39
- data/spec/aws/requests/simpledb/delete_domain_spec.rb +0 -28
- data/spec/aws/requests/simpledb/domain_metadata_spec.rb +0 -52
- data/spec/aws/requests/simpledb/get_attributes_spec.rb +0 -67
- data/spec/aws/requests/simpledb/list_domains_spec.rb +0 -30
- data/spec/aws/requests/simpledb/put_attributes_spec.rb +0 -49
- data/spec/aws/requests/simpledb/select_spec.rb +0 -27
- data/tests/aws/models/compute/flavors_tests.rb +0 -5
- data/tests/aws/models/compute/server_tests.rb +0 -6
- data/tests/aws/models/compute/servers_tests.rb +0 -6
- data/tests/aws/models/storage/directories_tests.rb +0 -5
- data/tests/aws/models/storage/directory_tests.rb +0 -5
- data/tests/aws/models/storage/file_tests.rb +0 -5
- data/tests/aws/models/storage/files_tests.rb +0 -5
- data/tests/bluebox/models/compute/flavors_tests.rb +0 -5
- data/tests/bluebox/models/compute/server_tests.rb +0 -5
- data/tests/bluebox/models/compute/servers_tests.rb +0 -6
- data/tests/brightbox/models/compute/flavors_tests.rb +0 -5
- data/tests/brightbox/models/compute/server_tests.rb +0 -6
- data/tests/brightbox/models/compute/servers_tests.rb +0 -6
- data/tests/go_grid/helper.rb +0 -0
- data/tests/google/models/storage/directories_tests.rb +0 -5
- data/tests/google/models/storage/directory_tests.rb +0 -5
- data/tests/google/models/storage/file_tests.rb +0 -5
- data/tests/google/models/storage/files_tests.rb +0 -5
- data/tests/helpers/storage/directories_tests.rb +0 -7
- data/tests/helpers/storage/directory_tests.rb +0 -18
- data/tests/helpers/storage/file_tests.rb +0 -27
- data/tests/helpers/storage/files_tests.rb +0 -13
- data/tests/local/models/storage/directories_tests.rb +0 -5
- data/tests/local/models/storage/directory_tests.rb +0 -5
- data/tests/local/models/storage/file_tests.rb +0 -5
- data/tests/local/models/storage/files_tests.rb +0 -5
- data/tests/rackspace/models/compute/flavors_tests.rb +0 -5
- data/tests/rackspace/models/compute/server_tests.rb +0 -6
- data/tests/rackspace/models/compute/servers_tests.rb +0 -6
- data/tests/rackspace/models/storage/directories_tests.rb +0 -5
- data/tests/rackspace/models/storage/directory_tests.rb +0 -5
- data/tests/rackspace/models/storage/file_tests.rb +0 -5
- data/tests/rackspace/models/storage/files_tests.rb +0 -5
- data/tests/rackspace/requests/compute/resize_tests.rb +0 -47
- data/tests/slicehost/helper.rb +0 -1
- data/tests/slicehost/models/compute/flavors_tests.rb +0 -5
- data/tests/slicehost/models/compute/server_tests.rb +0 -6
- data/tests/slicehost/models/compute/servers_tests.rb +0 -6
- data/tests/zerigo/helper.rb +0 -0
@@ -14,12 +14,13 @@ module Fog
|
|
14
14
|
attribute :cache_control, :aliases => 'Cache-Control'
|
15
15
|
attribute :content_disposition, :aliases => 'Content-Disposition'
|
16
16
|
attribute :content_encoding, :aliases => 'Content-Encoding'
|
17
|
-
attribute :content_length, :aliases => ['Content-Length', 'Size']
|
17
|
+
attribute :content_length, :aliases => ['Content-Length', 'Size']
|
18
18
|
attribute :content_md5, :aliases => 'Content-MD5'
|
19
19
|
attribute :content_type, :aliases => 'Content-Type'
|
20
20
|
attribute :etag, :aliases => ['Etag', 'ETag']
|
21
21
|
attribute :expires, :aliases => 'Expires'
|
22
|
-
attribute :last_modified, :aliases => ['Last-Modified', 'LastModified']
|
22
|
+
attribute :last_modified, :aliases => ['Last-Modified', 'LastModified']
|
23
|
+
attribute :metadata
|
23
24
|
attribute :owner, :aliases => 'Owner'
|
24
25
|
attribute :storage_class, :aliases => ['x-goog-storage-class', 'StorageClass']
|
25
26
|
|
@@ -63,6 +64,16 @@ module Fog
|
|
63
64
|
true
|
64
65
|
end
|
65
66
|
|
67
|
+
remove_method :metadata
|
68
|
+
def metadata
|
69
|
+
attributes.reject {|key, value| !(key.to_s =~ /^x-goog-meta-/)}
|
70
|
+
end
|
71
|
+
|
72
|
+
remove_method :metadata=
|
73
|
+
def metadata=(new_metadata)
|
74
|
+
merge_attributes(new_metadata)
|
75
|
+
end
|
76
|
+
|
66
77
|
remove_method :owner=
|
67
78
|
def owner=(new_owner)
|
68
79
|
if new_owner
|
@@ -107,6 +118,7 @@ module Fog
|
|
107
118
|
options['Content-MD5'] = content_md5 if content_md5
|
108
119
|
options['Content-Type'] = content_type if content_type
|
109
120
|
options['Expires'] = expires if expires
|
121
|
+
options.merge(metadata)
|
110
122
|
|
111
123
|
data = connection.put_object(directory.key, key, body, options)
|
112
124
|
merge_attributes(data.headers)
|
data/lib/fog/linode/dns.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Linode
|
5
|
+
class DNS
|
6
|
+
|
7
|
+
class Record < Fog::Model
|
8
|
+
|
9
|
+
identity :id, :aliases => ['ResourceID', 'RESOURCEID']
|
10
|
+
|
11
|
+
attribute :ip, :aliases => 'TARGET'
|
12
|
+
attribute :name, :aliases => 'NAME'
|
13
|
+
attribute :priority, :aliases => 'PRIORITY'
|
14
|
+
attribute :ttl, :aliases => 'TTL_SEC'
|
15
|
+
attribute :type, :aliases => 'TYPE'
|
16
|
+
attribute :zone_id, :aliases => 'DOMAINID'
|
17
|
+
|
18
|
+
# "PROTOCOL":"",
|
19
|
+
# "WEIGHT":0,
|
20
|
+
# "PORT":0,
|
21
|
+
|
22
|
+
def initialize(attributes={})
|
23
|
+
self.ttl ||= 3600
|
24
|
+
super
|
25
|
+
end
|
26
|
+
|
27
|
+
def destroy
|
28
|
+
requires :identity, :zone
|
29
|
+
connection.domain_resource_delete(zone.id, identity)
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
def zone
|
34
|
+
@zone
|
35
|
+
end
|
36
|
+
|
37
|
+
def save
|
38
|
+
requires :type, :zone
|
39
|
+
options = {}
|
40
|
+
# * options<~Hash>
|
41
|
+
# * weight<~Integer>: default: 5
|
42
|
+
# * port<~Integer>: default: 80
|
43
|
+
# * protocol<~String>: The protocol to append to an SRV record. Ignored on other record
|
44
|
+
# types. default: udp
|
45
|
+
options[:name] = name if name
|
46
|
+
options[:priority] = priority if priority
|
47
|
+
options[:target] = ip if ip
|
48
|
+
options[:ttl_sec] = ttl if ttl
|
49
|
+
response = unless identity
|
50
|
+
connection.domain_resource_create(zone.identity, type, options)
|
51
|
+
else
|
52
|
+
options[:type] = type if type
|
53
|
+
connection.domain_resource_update(zone.identity, identity, options)
|
54
|
+
end
|
55
|
+
merge_attributes(response.body['DATA'])
|
56
|
+
true
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
def zone=(new_zone)
|
62
|
+
@zone = new_zone
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/linode/models/dns/record'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Linode
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Records < Fog::Collection
|
9
|
+
|
10
|
+
attribute :zone
|
11
|
+
|
12
|
+
model Fog::Linode::DNS::Record
|
13
|
+
|
14
|
+
def all
|
15
|
+
requires :zone
|
16
|
+
data = connection.domain_resource_list(zone.id).body['DATA']
|
17
|
+
load(data)
|
18
|
+
end
|
19
|
+
|
20
|
+
def get(record_id)
|
21
|
+
if data = connection.domain_resource_list(zone.id, record_id).body['DATA'].first
|
22
|
+
new(data)
|
23
|
+
else
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def new(attributes = {})
|
29
|
+
requires :zone
|
30
|
+
super({ :zone => zone }.merge!(attributes))
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
require 'fog/linode/models/dns/records'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Linode
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Zone < Fog::Model
|
9
|
+
|
10
|
+
identity :id, :aliases => ['DomainID', 'DOMAINID', 'ResourceID']
|
11
|
+
|
12
|
+
attribute :description, :aliases => 'DESCRIPTION'
|
13
|
+
attribute :domain, :aliases => 'DOMAIN'
|
14
|
+
attribute :email, :aliases => 'SOA_EMAIL'
|
15
|
+
attribute :ttl, :aliases => 'TTL_SEC'
|
16
|
+
attribute :type, :aliases => 'TYPE'
|
17
|
+
|
18
|
+
# "STATUS":1,
|
19
|
+
# "RETRY_SEC":0,
|
20
|
+
# "MASTER_IPS":"",
|
21
|
+
# "EXPIRE_SEC":0,
|
22
|
+
# "REFRESH_SEC":0,
|
23
|
+
# "TTL_SEC":0
|
24
|
+
|
25
|
+
def initialize(attributes={})
|
26
|
+
self.type ||= 'master'
|
27
|
+
self.ttl ||= 3600
|
28
|
+
super
|
29
|
+
end
|
30
|
+
|
31
|
+
def destroy
|
32
|
+
requires :identity
|
33
|
+
connection.domain_delete(identity)
|
34
|
+
true
|
35
|
+
end
|
36
|
+
|
37
|
+
def records
|
38
|
+
@records ||= begin
|
39
|
+
Fog::Linode::DNS::Records.new(
|
40
|
+
:zone => self,
|
41
|
+
:connection => connection
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def nameservers
|
47
|
+
[
|
48
|
+
'ns1.linode.com',
|
49
|
+
'ns2.linode.com',
|
50
|
+
'ns3.linode.com',
|
51
|
+
'ns4.linode.com',
|
52
|
+
'ns5.linode.com'
|
53
|
+
]
|
54
|
+
end
|
55
|
+
|
56
|
+
def save
|
57
|
+
requires :domain, :type
|
58
|
+
requires :email if type == 'master'
|
59
|
+
options = {}
|
60
|
+
# * options<~Hash>
|
61
|
+
# * refresh_sec<~Integer> numeric, default: '0'
|
62
|
+
# * retry_sec<~Integer> numeric, default: '0'
|
63
|
+
# * expire_sec<~Integer> numeric, default: '0'
|
64
|
+
# * status<~Integer> 0, 1, or 2 (disabled, active, edit mode), default: 1
|
65
|
+
# * master_ips<~String> When type=slave, the zone's master DNS servers list, semicolon separated
|
66
|
+
options[:description] = description if description
|
67
|
+
options[:soa_email] = email if email
|
68
|
+
options[:ttl_sec] = ttl if ttl
|
69
|
+
response = unless identity
|
70
|
+
connection.domain_create(domain, type, options)
|
71
|
+
else
|
72
|
+
options[:domain] = domain if domain
|
73
|
+
options[:type] = type if type
|
74
|
+
connection.domain_update(identity, options)
|
75
|
+
end
|
76
|
+
merge_attributes(response.body['DATA'])
|
77
|
+
true
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/linode/models/dns/zone'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Linode
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Zones < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Linode::DNS::Zone
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = connection.domain_list.body['DATA']
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(zone_id)
|
18
|
+
if data = connection.domain_list(zone_id).body['DATA'].first
|
19
|
+
new(data)
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -24,8 +24,7 @@ module Fog
|
|
24
24
|
# * body<~Hash>:
|
25
25
|
# * DATA<~Hash>:
|
26
26
|
# * 'DomainID'<~Integer>: domain ID
|
27
|
-
def domain_create(
|
28
|
-
|
27
|
+
def domain_create(domain, type, options = {})
|
29
28
|
query= {}
|
30
29
|
request(
|
31
30
|
:expects => 200,
|
@@ -42,7 +41,7 @@ module Fog
|
|
42
41
|
|
43
42
|
class Mock
|
44
43
|
|
45
|
-
def domain_create(
|
44
|
+
def domain_create(domain, type, options ={})
|
46
45
|
Fog::Mock.not_implemented
|
47
46
|
end
|
48
47
|
|
@@ -11,7 +11,7 @@ module Fog
|
|
11
11
|
# * options<~Hash>
|
12
12
|
# * name<~String>: The hostname or FQDN. When Type=MX the subdomain to delegate to the
|
13
13
|
# Target MX server
|
14
|
-
# *
|
14
|
+
# * target<~String> When Type=MX the hostname. When Type=CNAME the target of the alias.
|
15
15
|
# When Type=TXT the value of the record. When Type=A or AAAA the token
|
16
16
|
# of '[remote_addr]' will be substituted with the IP address of the request.
|
17
17
|
# * priority<~Integer>: priority for MX and SRV records, 0-255 - default: 10
|
@@ -25,8 +25,7 @@ module Fog
|
|
25
25
|
# * body<~Hash>:
|
26
26
|
# * DATA<~Hash>:
|
27
27
|
# * 'ResourceID'<~Integer>: ID of the resource record created
|
28
|
-
def domain_resource_create(
|
29
|
-
|
28
|
+
def domain_resource_create(domain_id, type, options = {})
|
30
29
|
query= {}
|
31
30
|
request(
|
32
31
|
:expects => 200,
|
@@ -43,7 +42,7 @@ module Fog
|
|
43
42
|
|
44
43
|
class Mock
|
45
44
|
|
46
|
-
def domain_resource_create(
|
45
|
+
def domain_resource_create(domain_id, type, options = {})
|
47
46
|
Fog::Mock.not_implemented
|
48
47
|
end
|
49
48
|
|
@@ -26,11 +26,14 @@ module Fog
|
|
26
26
|
# * 'DOMAINID'<~Interger>: ID of the domain that this record belongs to
|
27
27
|
# * 'NAME'<~Interger>: The hostname or FQDN. When Type=MX, the subdomain to delegate to
|
28
28
|
def domain_resource_list(domain_id, resource_id = nil)
|
29
|
-
|
29
|
+
query = { :api_action => 'domain.resource.list', :domainID => domain_id }
|
30
|
+
if resource_id
|
31
|
+
query[:resourceID] = resource_id
|
32
|
+
end
|
30
33
|
request(
|
31
34
|
:expects => 200,
|
32
35
|
:method => 'GET',
|
33
|
-
:query =>
|
36
|
+
:query => query
|
34
37
|
)
|
35
38
|
end
|
36
39
|
|
@@ -26,7 +26,7 @@ module Fog
|
|
26
26
|
# * body<~Hash>:
|
27
27
|
# * DATA<~Hash>:
|
28
28
|
# * 'ResourceID'<~Integer>: ID of the resource record updated
|
29
|
-
def domain_resource_update(
|
29
|
+
def domain_resource_update(domain_id, resource_id, options = {})
|
30
30
|
|
31
31
|
query= {}
|
32
32
|
request(
|
@@ -44,7 +44,7 @@ module Fog
|
|
44
44
|
|
45
45
|
class Mock
|
46
46
|
|
47
|
-
def domain_resource_update(
|
47
|
+
def domain_resource_update(domain_id, resource_id, options = {})
|
48
48
|
Fog::Mock.not_implemented
|
49
49
|
end
|
50
50
|
|
@@ -24,7 +24,7 @@ module Fog
|
|
24
24
|
# * body<~Hash>:
|
25
25
|
# * DATA<~Hash>:
|
26
26
|
# * 'DomainID'<~Integer>: domain ID
|
27
|
-
def domain_update(
|
27
|
+
def domain_update(domain_id, options = {})
|
28
28
|
|
29
29
|
request(
|
30
30
|
:expects => 200,
|
@@ -38,7 +38,7 @@ module Fog
|
|
38
38
|
|
39
39
|
class Mock
|
40
40
|
|
41
|
-
def domain_update(
|
41
|
+
def domain_update(domain_id, options = {})
|
42
42
|
Fog::Mock.not_implemented
|
43
43
|
end
|
44
44
|
|
@@ -74,7 +74,7 @@ module Fog
|
|
74
74
|
data = {
|
75
75
|
'addresses' => { 'private' => ['0.0.0.0'], 'public' => ['0.0.0.0'] },
|
76
76
|
'flavorId' => flavor_id,
|
77
|
-
'id' =>
|
77
|
+
'id' => Fog::Mock.random_numbers(6).to_i,
|
78
78
|
'imageId' => image_id,
|
79
79
|
'hostId' => "123456789ABCDEF01234567890ABCDEF",
|
80
80
|
'metadata' => options['metadata'] || {},
|
@@ -25,7 +25,25 @@ module Fog
|
|
25
25
|
class Mock
|
26
26
|
|
27
27
|
def get_flavor_details(flavor_id)
|
28
|
-
|
28
|
+
response = Excon::Response.new
|
29
|
+
flavor = {
|
30
|
+
1 => { 'name' => '256 server', 'ram' => 256, 'disk' => 10 },
|
31
|
+
2 => { 'name' => '512 server', 'ram' => 512, 'disk' => 20 },
|
32
|
+
3 => { 'name' => '1GB server', 'ram' => 1024, 'disk' => 40 },
|
33
|
+
4 => { 'name' => '2GB server', 'ram' => 2048, 'disk' => 80 },
|
34
|
+
5 => { 'name' => '4GB server', 'ram' => 4096, 'disk' => 160 },
|
35
|
+
6 => { 'name' => '8GB server', 'ram' => 8192, 'disk' => 320 },
|
36
|
+
7 => { 'name' => '15.5GB server', 'ram' => 15872, 'disk' => 620 }
|
37
|
+
}[flavor_id]
|
38
|
+
if flavor
|
39
|
+
response.status = 200
|
40
|
+
response.body = {
|
41
|
+
'flavor' => flavor
|
42
|
+
}
|
43
|
+
response
|
44
|
+
else
|
45
|
+
raise Fog::Rackspace::Compute::NotFound
|
46
|
+
end
|
29
47
|
end
|
30
48
|
|
31
49
|
end
|
@@ -23,7 +23,20 @@ module Fog
|
|
23
23
|
class Mock
|
24
24
|
|
25
25
|
def list_flavors
|
26
|
-
|
26
|
+
response = Excon::Response.new
|
27
|
+
response.status = 200
|
28
|
+
response.body = {
|
29
|
+
'flavors' => [
|
30
|
+
{ 'name' => '256 server', 'id' => 1 },
|
31
|
+
{ 'name' => '512 server', 'id' => 2 },
|
32
|
+
{ 'name' => '1GB server', 'id' => 3 },
|
33
|
+
{ 'name' => '2GB server', 'id' => 4 },
|
34
|
+
{ 'name' => '4GB server', 'id' => 5 },
|
35
|
+
{ 'name' => '8GB server', 'id' => 6 },
|
36
|
+
{ 'name' => '15.5GB server', 'id' => 7 }
|
37
|
+
]
|
38
|
+
}
|
39
|
+
response
|
27
40
|
end
|
28
41
|
|
29
42
|
end
|