brightbox-cli 0.16.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +13 -17
- data/README.rdoc +13 -17
- data/brightbox-cli.gemspec +1 -1
- data/lib/brightbox-cli/accounts.rb +7 -0
- data/lib/brightbox-cli/api.rb +3 -0
- data/lib/brightbox-cli/commands/config-client-list.rb +1 -1
- data/lib/brightbox-cli/commands/firewall-rules-create.rb +4 -0
- data/lib/brightbox-cli/commands/firewall-rules-update.rb +49 -0
- data/lib/brightbox-cli/commands/groups-show.rb +1 -1
- data/lib/brightbox-cli/commands/groups-update.rb +3 -1
- data/lib/brightbox-cli/commands/images-destroy.rb +1 -1
- data/lib/brightbox-cli/commands/images-list.rb +9 -3
- data/lib/brightbox-cli/commands/images-register.rb +1 -1
- data/lib/brightbox-cli/commands/images-update.rb +3 -1
- data/lib/brightbox-cli/commands/lbs-update.rb +4 -2
- data/lib/brightbox-cli/commands/{servers-activate-cloud.rb → servers-activate-console.rb} +2 -1
- data/lib/brightbox-cli/commands/servers-update.rb +2 -1
- data/lib/brightbox-cli/config.rb +17 -2
- data/lib/brightbox-cli/detailed_server.rb +1 -1
- data/lib/brightbox-cli/firewall_rule.rb +6 -0
- data/lib/brightbox-cli/gli_global_hooks.rb +8 -1
- data/lib/brightbox-cli/images.rb +22 -1
- data/lib/brightbox-cli/nilable_hash.rb +7 -0
- data/lib/brightbox-cli/server_groups.rb +0 -6
- data/lib/brightbox-cli/servers.rb +6 -2
- data/lib/brightbox-cli/tables.rb +13 -0
- data/lib/brightbox-cli/vendor/fog/README.rdoc +2 -9
- data/lib/brightbox-cli/vendor/fog/Rakefile +3 -2
- data/lib/brightbox-cli/vendor/fog/changelog.txt +213 -0
- data/lib/brightbox-cli/vendor/fog/docs/_layouts/default.html +1 -1
- data/lib/brightbox-cli/vendor/fog/docs/about/contributing.markdown +1 -1
- data/lib/brightbox-cli/vendor/fog/docs/about/getting_started.markdown +28 -3
- data/lib/brightbox-cli/vendor/fog/docs/dns/index.markdown +1 -1
- data/lib/brightbox-cli/vendor/fog/docs/index.markdown +2 -10
- data/lib/brightbox-cli/vendor/fog/docs/storage/index.markdown +2 -2
- data/lib/brightbox-cli/vendor/fog/fog.gemspec +6 -5
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/auto_scaling.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/cloud_formation.rb +3 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/cloud_watch.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/compute.rb +5 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/elb.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/emr.rb +133 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/addresses.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/key_pairs.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/security_groups.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/server.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/servers.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/snapshots.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/spot_request.rb +21 -4
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/spot_requests.rb +45 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/volumes.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elb/load_balancer.rb +2 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +0 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_formation/update_stack.rb +19 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/add_instance_groups.rb +28 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/add_job_flow_steps.rb +17 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/describe_job_flows.rb +140 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/modify_instance_groups.rb +17 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/run_job_flow.rb +19 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/set_termination_protection.rb +17 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/emr/terminate_job_flows.rb +17 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/rds.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_formation/create_stack.rb +6 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_formation/update_stack.rb +62 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +141 -36
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/delete_security_group.rb +25 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/delete_tags.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_addresses.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_availability_zones.rb +5 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_images.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_instances.rb +15 -6
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_key_pairs.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_regions.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_reserved_instances.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_snapshots.rb +4 -4
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_volumes.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/modify_instance_attribute.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +41 -29
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/describe_load_balancers.rb +3 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/add_instance_groups.rb +46 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/add_job_flow_steps.rb +49 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/describe_job_flows.rb +108 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/modify_instance_groups.rb +40 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/run_job_flow.rb +106 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/set_termination_protection.rb +39 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/terminate_job_flows.rb +37 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/simpledb/select.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/acl_utils.rb +62 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_bucket_acl.rb +7 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object_acl.rb +7 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/put_bucket_acl.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/put_object_acl.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/ses.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/simpledb.rb +2 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/sns.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/sqs.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/storage.rb +10 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws.rb +26 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/aws.rb +8 -4
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/bluebox.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/brightbox.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/dnsimple.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/dnsmadeeasy.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/ecloud.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/glesys.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/go_grid.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/google.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/libvirt.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/linode.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/local.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/new_servers.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/ninefold.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/openstack.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/rackspace.rb +3 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/slicehost.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/stormondemand.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/virtual_box.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/vmfusion.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/voxel.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin/zerigo.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/bin.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/compute.rb +2 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/cloud_ip.rb +10 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/server.rb +11 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/server_group.rb +9 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +13 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/connection.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/credentials.rb +3 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/deprecation.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/logger.rb +8 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/mock.rb +4 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/provider.rb +7 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/core/service.rb +8 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/dnsmadeeasy/models/dns/record.rb +3 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/dynect/dns.rb +25 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/compute.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/go_grid/requests/compute/grid_server_power.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/google/models/storage/file.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/google/requests/storage/get_object_url.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/google/storage.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/models/storage/file.rb +8 -6
- data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/models/storage/files.rb +3 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/requests/storage/head_namespace.rb +20 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/storage.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/server.rb +7 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/create_server.rb +6 -11
- data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/load_balancers.rb +1 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/dns/callback.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/dns/record.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/dns/zone.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/dns.rb +1 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/models/dns/record.rb +7 -3
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/models/dns/zone.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/parsers/dns/create_record.rb +8 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/parsers/dns/get_record.rb +17 -5
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/parsers/dns/get_records.rb +10 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/requests/dns/get_record.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/requests/dns/get_records.rb +7 -8
- data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/requests/dns/update_record.rb +43 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/models/compute/balancers.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/models/compute/configs.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/models/compute/images.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/models/compute/servers.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/models/compute/templates.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/terremark/vcloud.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/compute.rb +41 -23
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/models/compute/server.rb +19 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/models/compute/servers.rb +8 -2
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/requests/compute/datacenters.rb +34 -0
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +83 -10
- data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/requests/compute/vm_clone.rb +76 -37
- data/lib/brightbox-cli/vendor/fog/lib/fog.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/tests/aws/models/cloud_watch/alarm_data_tests.rb +8 -6
- data/lib/brightbox-cli/vendor/fog/tests/aws/models/cloud_watch/alarm_history_tests.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/tests/aws/models/compute/security_group_tests.rb +15 -10
- data/lib/brightbox-cli/vendor/fog/tests/aws/models/elb/model_tests.rb +4 -4
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/cloud_formation/stack_tests.rb +14 -0
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/instance_tests.rb +16 -1
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/security_group_tests.rb +251 -32
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/tag_tests.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/emr/helper.rb +172 -0
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/emr/instance_group_tests.rb +106 -0
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/emr/job_flow_tests.rb +88 -0
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/storage/acl_utils_tests.rb +209 -0
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/storage/bucket_tests.rb +80 -55
- data/lib/brightbox-cli/vendor/fog/tests/aws/requests/storage/object_tests.rb +42 -24
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/account_tests.rb +11 -6
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/api_client_tests.rb +23 -12
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/cloud_ip_tests.rb +29 -20
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/helper.rb +70 -14
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/image_tests.rb +17 -14
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/interface_tests.rb +3 -2
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/load_balancer_tests.rb +57 -11
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_group_tests.rb +29 -22
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_tests.rb +38 -21
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_type_tests.rb +7 -6
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/user_tests.rb +11 -16
- data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/zone_tests.rb +7 -6
- data/lib/brightbox-cli/vendor/fog/tests/compute/helper.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/tests/core/credential_tests.rb +2 -2
- data/lib/brightbox-cli/vendor/fog/tests/core/mocking_tests.rb +60 -0
- data/lib/brightbox-cli/vendor/fog/tests/dns/models/record_tests.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/tests/dns/models/records_tests.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/tests/dns/models/zone_tests.rb +3 -1
- data/lib/brightbox-cli/vendor/fog/tests/dns/models/zones_tests.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/tests/glesys/requests/compute/helper.rb +4 -2
- data/lib/brightbox-cli/vendor/fog/tests/glesys/requests/compute/server_tests.rb +1 -1
- data/lib/brightbox-cli/vendor/fog/tests/helper.rb +4 -0
- data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/dns_tests.rb +16 -12
- data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/records_tests.rb +13 -11
- data/lib/brightbox-cli/vendor/fog/tests/slicehost/requests/dns/dns_tests.rb +58 -11
- data/lib/brightbox-cli/vendor/fog/tests/vsphere/compute_tests.rb +18 -10
- data/lib/brightbox-cli/vendor/fog/tests/vsphere/requests/compute/vm_clone_tests.rb +3 -7
- data/lib/brightbox-cli/version.rb +1 -1
- data/lib/brightbox_cli.rb +1 -0
- data/spec/fixtures/vcr_cassettes/list_server_groups.yml +37 -6
- data/spec/nilable_hash_spec.rb +30 -0
- metadata +48 -18
- data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/hash_to_acl.rb +0 -44
@@ -0,0 +1,46 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/add_instance_groups'
|
7
|
+
|
8
|
+
# adds an instance group to a running cluster
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * JobFlowId <~String> - Job flow in which to add the instance groups
|
12
|
+
# * InstanceGroups<~Array> - Instance Groups to add
|
13
|
+
# * 'BidPrice'<~String> - Bid price for each Amazon EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.
|
14
|
+
# * 'InstanceCount'<~Integer> - Target number of instances for the instance group
|
15
|
+
# * 'InstanceRole'<~String> - MASTER | CORE | TASK The role of the instance group in the cluster
|
16
|
+
# * 'InstanceType'<~String> - The Amazon EC2 instance type for all instances in the instance group
|
17
|
+
# * 'MarketType'<~String> - ON_DEMAND | SPOT Market type of the Amazon EC2 instances used to create a cluster node
|
18
|
+
# * 'Name'<~String> - Friendly name given to the instance group.
|
19
|
+
#
|
20
|
+
# ==== Returns
|
21
|
+
# * response<~Excon::Response>:
|
22
|
+
# * body<~Hash>:
|
23
|
+
def add_instance_groups(job_flow_id, options={})
|
24
|
+
|
25
|
+
if instance_groups = options.delete('InstanceGroups')
|
26
|
+
options.merge!(Fog::AWS.indexed_param('InstanceGroups.member.%d', [*instance_groups]))
|
27
|
+
end
|
28
|
+
|
29
|
+
request({
|
30
|
+
'Action' => 'AddInstanceGroups',
|
31
|
+
'JobFlowId' => job_flow_id,
|
32
|
+
:parser => Fog::Parsers::AWS::EMR::AddInstanceGroups.new,
|
33
|
+
}.merge(options))
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
class Mock
|
39
|
+
def add_instance_groups(job_flow_id, options={})
|
40
|
+
Fog::Mock.not_implemented
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/add_job_flow_steps'
|
7
|
+
|
8
|
+
# adds new steps to a running job flow.
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_AddJobFlowSteps.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * JobFlowId <~String> - A string that uniquely identifies the job flow
|
12
|
+
# * Steps <~Array> - A list of steps to be executed by the job flow
|
13
|
+
# * 'ActionOnFailure'<~String> - TERMINATE_JOB_FLOW | CANCEL_AND_WAIT | CONTINUE Specifies the action to take if the job flow step fails
|
14
|
+
# * 'HadoopJarStep'<~Array> - Specifies the JAR file used for the job flow step
|
15
|
+
# * 'Args'<~String list> - A list of command line arguments passed to the JAR file's main function when executed.
|
16
|
+
# * 'Jar'<~String> - A path to a JAR file run during the step.
|
17
|
+
# * 'MainClass'<~String> - The name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file
|
18
|
+
# * 'Properties'<~Array> - A list of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function
|
19
|
+
# * 'Key'<~String> - The unique identifier of a key value pair
|
20
|
+
# * 'Value'<~String> - The value part of the identified key
|
21
|
+
# * 'Name'<~String> - The name of the job flow step
|
22
|
+
#
|
23
|
+
# ==== Returns
|
24
|
+
# * response<~Excon::Response>:
|
25
|
+
# * body<~Hash>:
|
26
|
+
def add_job_flow_steps(job_flow_id, options={})
|
27
|
+
|
28
|
+
if steps = options.delete('Steps')
|
29
|
+
options.merge!(Fog::AWS.serialize_keys('Steps', steps))
|
30
|
+
end
|
31
|
+
|
32
|
+
request({
|
33
|
+
'Action' => 'AddJobFlowSteps',
|
34
|
+
'JobFlowId' => job_flow_id,
|
35
|
+
:parser => Fog::Parsers::AWS::EMR::AddJobFlowSteps.new,
|
36
|
+
}.merge(options))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class Mock
|
41
|
+
|
42
|
+
def add_job_flow_steps(db_name, options={})
|
43
|
+
Fog::Mock.not_implemented
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/describe_job_flows'
|
7
|
+
|
8
|
+
# returns a list of job flows that match all of the supplied parameters.
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_DescribeJobFlows.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * CreatedAfter <~DateTime> - Return only job flows created after this date and time
|
12
|
+
# * CreatedBefore <~DateTime> - Return only job flows created before this date and time
|
13
|
+
# * JobFlowIds <~String list> - Return only job flows whose job flow ID is contained in this list
|
14
|
+
# * JobFlowStates <~String list> - RUNNING | WAITING | SHUTTING_DOWN | STARTING Return only job flows whose state is contained in this list
|
15
|
+
#
|
16
|
+
# ==== Returns
|
17
|
+
# * response<~Excon::Response>:
|
18
|
+
# * body<~Hash>:
|
19
|
+
# * JobFlows <~Array> - A list of job flows matching the parameters supplied.
|
20
|
+
# * AmiVersion <~String> - A list of bootstrap actions that will be run before Hadoop is started on the cluster nodes.
|
21
|
+
# * 'BootstrapActions'<~Array> - A list of the bootstrap actions run by the job flow
|
22
|
+
# * 'BootstrapConfig <~Array> - A description of the bootstrap action
|
23
|
+
# * 'Name' <~String> - The name of the bootstrap action
|
24
|
+
# * 'ScriptBootstrapAction' <~Array> - The script run by the bootstrap action.
|
25
|
+
# * 'Args' <~String list> - A list of command line arguments to pass to the bootstrap action script.
|
26
|
+
# * 'Path' <~String> - Location of the script to run during a bootstrap action.
|
27
|
+
# * 'ExecutionStatusDetail'<~Array> - Describes the execution status of the job flow
|
28
|
+
# * 'CreationDateTime <~DateTime> - The creation date and time of the job flow.
|
29
|
+
# * 'EndDateTime <~DateTime> - The completion date and time of the job flow.
|
30
|
+
# * 'LastStateChangeReason <~String> - Description of the job flow last changed state.
|
31
|
+
# * 'ReadyDateTime <~DateTime> - The date and time when the job flow was ready to start running bootstrap actions.
|
32
|
+
# * 'StartDateTime <~DateTime> - The start date and time of the job flow.
|
33
|
+
# * 'State <~DateTime> - COMPLETED | FAILED | TERMINATED | RUNNING | SHUTTING_DOWN | STARTING | WAITING | BOOTSTRAPPING The state of the job flow.
|
34
|
+
# * Instances <~Array> - A specification of the number and type of Amazon EC2 instances on which to run the job flow.
|
35
|
+
# * 'Ec2KeyName'<~String> - Specifies the name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop.
|
36
|
+
# * 'HadoopVersion'<~String> - "0.18" | "0.20" Specifies the Hadoop version for the job flow
|
37
|
+
# * 'InstanceCount'<~Integer> - The number of Amazon EC2 instances used to execute the job flow
|
38
|
+
# * 'InstanceGroups'<~Array> - Configuration for the job flow's instance groups
|
39
|
+
# * 'BidPrice' <~String> - Bid price for each Amazon EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.
|
40
|
+
# * 'CreationDateTime' <~DateTime> - The date/time the instance group was created.
|
41
|
+
# * 'EndDateTime' <~DateTime> - The date/time the instance group was terminated.
|
42
|
+
# * 'InstanceGroupId' <~String> - Unique identifier for the instance group.
|
43
|
+
# * 'InstanceRequestCount'<~Integer> - Target number of instances for the instance group
|
44
|
+
# * 'InstanceRole'<~String> - MASTER | CORE | TASK The role of the instance group in the cluster
|
45
|
+
# * 'InstanceRunningCount'<~Integer> - Actual count of running instances
|
46
|
+
# * 'InstanceType'<~String> - The Amazon EC2 instance type for all instances in the instance group
|
47
|
+
# * 'LastStateChangeReason'<~String> - Details regarding the state of the instance group
|
48
|
+
# * 'Market'<~String> - ON_DEMAND | SPOT Market type of the Amazon EC2 instances used to create a cluster
|
49
|
+
# * 'Name'<~String> - Friendly name for the instance group
|
50
|
+
# * 'ReadyDateTime'<~DateTime> - The date/time the instance group was available to the cluster
|
51
|
+
# * 'StartDateTime'<~DateTime> - The date/time the instance group was started
|
52
|
+
# * 'State'<~String> - PROVISIONING | STARTING | BOOTSTRAPPING | RUNNING | RESIZING | ARRESTED | SHUTTING_DOWN | TERMINATED | FAILED | ENDED State of instance group
|
53
|
+
# * 'KeepJobFlowAliveWhenNoSteps' <~Boolean> - Specifies whether the job flow should terminate after completing all steps
|
54
|
+
# * 'MasterInstanceId'<~String> - The Amazon EC2 instance identifier of the master node
|
55
|
+
# * 'MasterInstanceType'<~String> - The EC2 instance type of the master node
|
56
|
+
# * 'MasterPublicDnsName'<~String> - The DNS name of the master node
|
57
|
+
# * 'NormalizedInstanceHours'<~Integer> - An approximation of the cost of the job flow, represented in m1.small/hours.
|
58
|
+
# * 'Placement'<~Array> - Specifies the Availability Zone the job flow will run in
|
59
|
+
# * 'AvailabilityZone' <~String> - The Amazon EC2 Availability Zone for the job flow.
|
60
|
+
# * 'SlaveInstanceType'<~String> - The EC2 instance type of the slave nodes
|
61
|
+
# * 'TerminationProtected'<~Boolean> - Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error
|
62
|
+
# * LogUri <~String> - Specifies the location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created
|
63
|
+
# * Name <~String> - The name of the job flow
|
64
|
+
# * Steps <~Array> - A list of steps to be executed by the job flow
|
65
|
+
# * 'ExecutionStatusDetail'<~Array> - Describes the execution status of the job flow
|
66
|
+
# * 'CreationDateTime <~DateTime> - The creation date and time of the job flow.
|
67
|
+
# * 'EndDateTime <~DateTime> - The completion date and time of the job flow.
|
68
|
+
# * 'LastStateChangeReason <~String> - Description of the job flow last changed state.
|
69
|
+
# * 'ReadyDateTime <~DateTime> - The date and time when the job flow was ready to start running bootstrap actions.
|
70
|
+
# * 'StartDateTime <~DateTime> - The start date and time of the job flow.
|
71
|
+
# * 'State <~DateTime> - COMPLETED | FAILED | TERMINATED | RUNNING | SHUTTING_DOWN | STARTING | WAITING | BOOTSTRAPPING The state of the job flow.
|
72
|
+
# * StepConfig <~Array> - The step configuration
|
73
|
+
# * 'ActionOnFailure'<~String> - TERMINATE_JOB_FLOW | CANCEL_AND_WAIT | CONTINUE Specifies the action to take if the job flow step fails
|
74
|
+
# * 'HadoopJarStep'<~Array> - Specifies the JAR file used for the job flow step
|
75
|
+
# * 'Args'<~String list> - A list of command line arguments passed to the JAR file's main function when executed.
|
76
|
+
# * 'Jar'<~String> - A path to a JAR file run during the step.
|
77
|
+
# * 'MainClass'<~String> - The name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file
|
78
|
+
# * 'Properties'<~Array> - A list of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function
|
79
|
+
# * 'Key'<~String> - The unique identifier of a key value pair
|
80
|
+
# * 'Value'<~String> - The value part of the identified key
|
81
|
+
# * 'Name'<~String> - The name of the job flow step
|
82
|
+
def describe_job_flows(options={})
|
83
|
+
|
84
|
+
if job_ids = options.delete('JobFlowIds')
|
85
|
+
options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
|
86
|
+
end
|
87
|
+
|
88
|
+
if job_states = options.delete('JobFlowStates')
|
89
|
+
options.merge!(Fog::AWS.serialize_keys('JobFlowStates', job_states))
|
90
|
+
end
|
91
|
+
|
92
|
+
request({
|
93
|
+
'Action' => 'DescribeJobFlows',
|
94
|
+
:parser => Fog::Parsers::AWS::EMR::DescribeJobFlows.new,
|
95
|
+
}.merge(options))
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class Mock
|
100
|
+
|
101
|
+
def describe_job_flows(db_name, options={})
|
102
|
+
Fog::Mock.not_implemented
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/modify_instance_groups'
|
7
|
+
|
8
|
+
# modifies the number of nodes and configuration settings of an instance group..
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_ModifyInstanceGroups.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * InstanceGroups <~InstanceGroupModifyConfig list> - Instance groups to change
|
12
|
+
# * InstanceCount <~Integer> - Target size for instance group
|
13
|
+
# * InstanceGroupId <~String> - Unique ID of the instance group to expand or shrink
|
14
|
+
#
|
15
|
+
# ==== Returns
|
16
|
+
# * response<~Excon::Response>:
|
17
|
+
# * body<~Hash>
|
18
|
+
def modify_instance_groups(options={})
|
19
|
+
|
20
|
+
if job_ids = options.delete('InstanceGroups')
|
21
|
+
options.merge!(Fog::AWS.serialize_keys('InstanceGroups', job_ids))
|
22
|
+
end
|
23
|
+
|
24
|
+
request({
|
25
|
+
'Action' => 'ModifyInstanceGroups',
|
26
|
+
:parser => Fog::Parsers::AWS::EMR::ModifyInstanceGroups.new,
|
27
|
+
}.merge(options))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class Mock
|
32
|
+
|
33
|
+
def modify_instance_groups(options={})
|
34
|
+
Fog::Mock.not_implemented
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/run_job_flow'
|
7
|
+
|
8
|
+
# creates and starts running a new job flow
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_RunJobFlow.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * AdditionalInfo <~String> - A JSON string for selecting additional features.
|
12
|
+
# * BootstrapActions <~Array> - A list of bootstrap actions that will be run before Hadoop is started on the cluster nodes.
|
13
|
+
# * 'Name'<~String> - The name of the bootstrap action
|
14
|
+
# * 'ScriptBootstrapAction'<~Array> - The script run by the bootstrap action
|
15
|
+
# * 'Args' <~Array> - A list of command line arguments to pass to the bootstrap action script
|
16
|
+
# * 'Path' <~String> - Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
|
17
|
+
# * Instances <~Array> - A specification of the number and type of Amazon EC2 instances on which to run the job flow.
|
18
|
+
# * 'Ec2KeyName'<~String> - Specifies the name of the Amazon EC2 key pair that can be used to ssh to the master node as the user called "hadoop.
|
19
|
+
# * 'HadoopVersion'<~String> - "0.18" | "0.20" Specifies the Hadoop version for the job flow
|
20
|
+
# * 'InstanceCount'<~Integer> - The number of Amazon EC2 instances used to execute the job flow
|
21
|
+
# * 'InstanceGroups'<~Array> - Configuration for the job flow's instance groups
|
22
|
+
# * 'BidPrice' <~String> - Bid price for each Amazon EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.
|
23
|
+
# * 'InstanceCount'<~Integer> - Target number of instances for the instance group
|
24
|
+
# * 'InstanceRole'<~String> - MASTER | CORE | TASK The role of the instance group in the cluster
|
25
|
+
# * 'InstanceType'<~String> - The Amazon EC2 instance type for all instances in the instance group
|
26
|
+
# * 'MarketType'<~String> - ON_DEMAND | SPOT Market type of the Amazon EC2 instances used to create a cluster node
|
27
|
+
# * 'Name'<~String> - Friendly name given to the instance group.
|
28
|
+
# * 'KeepJobFlowAliveWhenNoSteps' <~Boolean> - Specifies whether the job flow should terminate after completing all steps
|
29
|
+
# * 'MasterInstanceType'<~String> - The EC2 instance type of the master node
|
30
|
+
# * 'Placement'<~Array> - Specifies the Availability Zone the job flow will run in
|
31
|
+
# * 'AvailabilityZone' <~String> - The Amazon EC2 Availability Zone for the job flow.
|
32
|
+
# * 'SlaveInstanceType'<~String> - The EC2 instance type of the slave nodes
|
33
|
+
# * 'TerminationProtected'<~Boolean> - Specifies whether to lock the job flow to prevent the Amazon EC2 instances from being terminated by API call, user intervention, or in the event of a job flow error
|
34
|
+
# * LogUri <~String> - Specifies the location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created
|
35
|
+
# * Name <~String> - The name of the job flow
|
36
|
+
# * Steps <~Array> - A list of steps to be executed by the job flow
|
37
|
+
# * 'ActionOnFailure'<~String> - TERMINATE_JOB_FLOW | CANCEL_AND_WAIT | CONTINUE Specifies the action to take if the job flow step fails
|
38
|
+
# * 'HadoopJarStep'<~Array> - Specifies the JAR file used for the job flow step
|
39
|
+
# * 'Args'<~String list> - A list of command line arguments passed to the JAR file's main function when executed.
|
40
|
+
# * 'Jar'<~String> - A path to a JAR file run during the step.
|
41
|
+
# * 'MainClass'<~String> - The name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file
|
42
|
+
# * 'Properties'<~Array> - A list of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function
|
43
|
+
# * 'Key'<~String> - The unique identifier of a key value pair
|
44
|
+
# * 'Value'<~String> - The value part of the identified key
|
45
|
+
# * 'Name'<~String> - The name of the job flow step
|
46
|
+
#
|
47
|
+
# ==== Returns
|
48
|
+
# * response<~Excon::Response>:
|
49
|
+
# * body<~Hash>:
|
50
|
+
def run_job_flow(name, options={})
|
51
|
+
|
52
|
+
if bootstrap_actions = options.delete('BootstrapActions')
|
53
|
+
options.merge!(Fog::AWS.serialize_keys('BootstrapActions', bootstrap_actions))
|
54
|
+
end
|
55
|
+
|
56
|
+
if instances = options.delete('Instances')
|
57
|
+
options.merge!(Fog::AWS.serialize_keys('Instances', instances))
|
58
|
+
end
|
59
|
+
|
60
|
+
if steps = options.delete('Steps')
|
61
|
+
options.merge!(Fog::AWS.serialize_keys('Steps', steps))
|
62
|
+
end
|
63
|
+
|
64
|
+
request({
|
65
|
+
'Action' => 'RunJobFlow',
|
66
|
+
'Name' => name,
|
67
|
+
:parser => Fog::Parsers::AWS::EMR::RunJobFlow.new,
|
68
|
+
}.merge(options))
|
69
|
+
end
|
70
|
+
|
71
|
+
def run_hive(name, options={})
|
72
|
+
steps = []
|
73
|
+
steps << {
|
74
|
+
'Name' => 'Setup Hive',
|
75
|
+
'HadoopJarStep' => {
|
76
|
+
'Jar' => 's3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar',
|
77
|
+
'Args' => ['s3://us-east-1.elasticmapreduce/libs/hive/hive-script', '--base-path', 's3://us-east-1.elasticmapreduce/libs/hive/', '--install-hive']},
|
78
|
+
'ActionOnFailure' => 'TERMINATE_JOB_FLOW'
|
79
|
+
}
|
80
|
+
steps << {
|
81
|
+
'Name' => 'Install Hive Site Configuration',
|
82
|
+
'HadoopJarStep' => {
|
83
|
+
'Jar' => 's3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar',
|
84
|
+
'Args' => ['s3://us-east-1.elasticmapreduce/libs/hive/hive-script', '--base-path', 's3://us-east-1.elasticmapreduce/libs/hive/', '--install-hive-site', '--hive-site=s3://raybeam.okl/prod/hive/hive-site.xml']},
|
85
|
+
'ActionOnFailure' => 'TERMINATE_JOB_FLOW'
|
86
|
+
}
|
87
|
+
options['Steps'] = steps
|
88
|
+
|
89
|
+
if not options['Instances'].nil?
|
90
|
+
options['Instances']['KeepJobFlowAliveWhenNoSteps'] = true
|
91
|
+
end
|
92
|
+
|
93
|
+
run_job_flow name, options
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class Mock
|
98
|
+
|
99
|
+
def run_job_flow(db_name, options={})
|
100
|
+
Fog::Mock.not_implemented
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/set_termination_protection'
|
7
|
+
|
8
|
+
# locks a job flow so the Amazon EC2 instances in the cluster cannot be terminated by user intervention.
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_SetTerminationProtection.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * JobFlowIds <~String list> - list of strings that uniquely identify the job flows to protect
|
12
|
+
# * TerminationProtected <~Boolean> - indicates whether to protect the job flow
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>
|
17
|
+
def set_termination_protection(is_protected, options={})
|
18
|
+
|
19
|
+
if job_ids = options.delete('JobFlowIds')
|
20
|
+
options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
|
21
|
+
end
|
22
|
+
request({
|
23
|
+
'Action' => 'SetTerminationProtection',
|
24
|
+
'TerminationProtected' => is_protected,
|
25
|
+
:parser => Fog::Parsers::AWS::EMR::SetTerminationProtection.new,
|
26
|
+
}.merge(options))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Mock
|
31
|
+
|
32
|
+
def set_termination_protection(db_name, options={})
|
33
|
+
Fog::Mock.not_implemented
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class EMR
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/emr/terminate_job_flows'
|
7
|
+
|
8
|
+
# shuts a list of job flows down.
|
9
|
+
# http://docs.amazonwebservices.com/ElasticMapReduce/latest/API/API_TerminateJobFlows.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * JobFlowIds <~String list> - list of strings that uniquely identify the job flows to protect
|
12
|
+
#
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>
|
16
|
+
def terminate_job_flows(options={})
|
17
|
+
|
18
|
+
if job_ids = options.delete('JobFlowIds')
|
19
|
+
options.merge!(Fog::AWS.serialize_keys('JobFlowIds', job_ids))
|
20
|
+
end
|
21
|
+
request({
|
22
|
+
'Action' => 'TerminateJobFlows',
|
23
|
+
:parser => Fog::Parsers::AWS::EMR::TerminateJobFlows.new,
|
24
|
+
}.merge(options))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Mock
|
29
|
+
|
30
|
+
def terminate_job_flows(db_name, options={})
|
31
|
+
Fog::Mock.not_implemented
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -29,7 +29,7 @@ module Fog
|
|
29
29
|
# * 'RequestId'
|
30
30
|
def get_attributes(domain_name, item_name, options = {})
|
31
31
|
if options.is_a?(Array)
|
32
|
-
Fog::Logger.
|
32
|
+
Fog::Logger.deprecation("get_attributes with array attributes param is deprecated, use 'AttributeName' => attributes) instead [light_black](#{caller.first})[/]")
|
33
33
|
options = {'AttributeName' => options}
|
34
34
|
end
|
35
35
|
options['AttributeName'] ||= []
|
@@ -49,7 +49,7 @@ module Fog
|
|
49
49
|
|
50
50
|
def get_attributes(domain_name, item_name, options = {})
|
51
51
|
if options.is_a?(Array)
|
52
|
-
Fog::Logger.
|
52
|
+
Fog::Logger.deprecation("get_attributes with array attributes param is deprecated, use 'AttributeName' => attributes) instead [light_black](#{caller.first})[/]")
|
53
53
|
options['AttributeName'] ||= options if options.is_a?(Array)
|
54
54
|
end
|
55
55
|
options['AttributeName'] ||= []
|
@@ -23,7 +23,7 @@ module Fog
|
|
23
23
|
# * 'NextToken'<~String> - offset to start with if there are are more domains to list
|
24
24
|
def select(select_expression, options = {})
|
25
25
|
if options.is_a?(String)
|
26
|
-
Fog::Logger.
|
26
|
+
Fog::Logger.deprecation("get_attributes with string next_token param is deprecated, use 'AttributeName' => attributes) instead [light_black](#{caller.first})[/]")
|
27
27
|
options = {'NextToken' => options}
|
28
28
|
end
|
29
29
|
options['NextToken'] ||= nil
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class AWS
|
4
|
+
|
5
|
+
require 'fog/aws/parsers/storage/access_control_list'
|
6
|
+
|
7
|
+
private
|
8
|
+
def self.hash_to_acl(acl)
|
9
|
+
data = "<AccessControlPolicy>\n"
|
10
|
+
|
11
|
+
if acl['Owner'] && (acl['Owner']['ID'] || acl['Owner']['DisplayName'])
|
12
|
+
data << " <Owner>\n"
|
13
|
+
data << " <ID>#{acl['Owner']['ID']}</ID>\n" if acl['Owner']['ID']
|
14
|
+
data << " <DisplayName>#{acl['Owner']['DisplayName']}</DisplayName>\n" if acl['Owner']['DisplayName']
|
15
|
+
data << " </Owner>\n"
|
16
|
+
end
|
17
|
+
|
18
|
+
grants = [acl['AccessControlList']].flatten.compact
|
19
|
+
|
20
|
+
data << " <AccessControlList>\n" if grants.any?
|
21
|
+
grants.each do |grant|
|
22
|
+
data << " <Grant>\n"
|
23
|
+
grantee = grant['Grantee']
|
24
|
+
type = case
|
25
|
+
when grantee.has_key?('ID')
|
26
|
+
'CanonicalUser'
|
27
|
+
when grantee.has_key?('EmailAddress')
|
28
|
+
'AmazonCustomerByEmail'
|
29
|
+
when grantee.has_key?('URI')
|
30
|
+
'Group'
|
31
|
+
end
|
32
|
+
|
33
|
+
data << " <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"#{type}\">\n"
|
34
|
+
case type
|
35
|
+
when 'CanonicalUser'
|
36
|
+
data << " <ID>#{grantee['ID']}</ID>\n" if grantee['ID']
|
37
|
+
data << " <DisplayName>#{grantee['DisplayName']}</DisplayName>\n" if grantee['DisplayName']
|
38
|
+
when 'AmazonCustomerByEmail'
|
39
|
+
data << " <EmailAddress>#{grantee['EmailAddress']}</EmailAddress>\n" if grantee['EmailAddress']
|
40
|
+
when 'Group'
|
41
|
+
data << " <URI>#{grantee['URI']}</URI>\n" if grantee['URI']
|
42
|
+
end
|
43
|
+
data << " </Grantee>\n"
|
44
|
+
data << " <Permission>#{grant['Permission']}</Permission>\n"
|
45
|
+
data << " </Grant>\n"
|
46
|
+
end
|
47
|
+
data << " </AccessControlList>\n" if grants.any?
|
48
|
+
|
49
|
+
data << "</AccessControlPolicy>"
|
50
|
+
|
51
|
+
data
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.acl_to_hash(acl_xml)
|
55
|
+
parser = Fog::Parsers::Storage::AWS::AccessControlList.new
|
56
|
+
Nokogiri::XML::SAX::Parser.new(parser).parse(acl_xml)
|
57
|
+
parser.response
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -48,11 +48,17 @@ module Fog
|
|
48
48
|
|
49
49
|
class Mock # :nodoc:all
|
50
50
|
|
51
|
+
require 'fog/aws/requests/storage/acl_utils'
|
52
|
+
|
51
53
|
def get_bucket_acl(bucket_name)
|
52
54
|
response = Excon::Response.new
|
53
55
|
if acl = self.data[:acls][:bucket][bucket_name]
|
54
56
|
response.status = 200
|
55
|
-
|
57
|
+
if acl.is_a?(String)
|
58
|
+
response.body = Fog::Storage::AWS.acl_to_hash(acl)
|
59
|
+
else
|
60
|
+
response.body = acl
|
61
|
+
end
|
56
62
|
else
|
57
63
|
response.status = 404
|
58
64
|
raise(Excon::Errors.status_error({:expects => 200}, response))
|
@@ -59,11 +59,17 @@ module Fog
|
|
59
59
|
|
60
60
|
class Mock # :nodoc:all
|
61
61
|
|
62
|
+
require 'fog/aws/requests/storage/acl_utils'
|
63
|
+
|
62
64
|
def get_object_acl(bucket_name, object_name, options = {})
|
63
65
|
response = Excon::Response.new
|
64
66
|
if acl = self.data[:acls][:object][bucket_name] && self.data[:acls][:object][bucket_name][object_name]
|
65
67
|
response.status = 200
|
66
|
-
|
68
|
+
if acl.is_a?(String)
|
69
|
+
response.body = Fog::Storage::AWS.acl_to_hash(acl)
|
70
|
+
else
|
71
|
+
response.body = acl
|
72
|
+
end
|
67
73
|
else
|
68
74
|
response.status = 404
|
69
75
|
raise(Excon::Errors.status_error({:expects => 200}, response))
|
@@ -18,7 +18,7 @@ module Fog
|
|
18
18
|
# http://docs.amazonwebservices.com/AmazonS3/latest/dev/S3_QSAuth.html
|
19
19
|
|
20
20
|
def get_object_url(bucket_name, object_name, expires)
|
21
|
-
Fog::Logger.
|
21
|
+
Fog::Logger.deprecation("Fog::Storage::AWS => #get_object_url is deprecated, use #get_object_https_url instead [light_black](#{caller.first})[/]")
|
22
22
|
get_object_https_url(bucket_name, object_name, expires)
|
23
23
|
end
|
24
24
|
|
@@ -27,7 +27,7 @@ module Fog
|
|
27
27
|
class Mock # :nodoc:all
|
28
28
|
|
29
29
|
def get_object_url(bucket_name, object_name, expires)
|
30
|
-
Fog::Logger.
|
30
|
+
Fog::Logger.deprecation("Fog::Storage::AWS => #get_object_url is deprecated, use #get_object_https_url instead [light_black](#{caller.first})[/]")
|
31
31
|
get_object_https_url(bucket_name, object_name, expires)
|
32
32
|
end
|
33
33
|
|
@@ -40,7 +40,7 @@ module Fog
|
|
40
40
|
#
|
41
41
|
# ==== Parameters
|
42
42
|
# * options<~Hash> - config arguments for connection. Defaults to {}.
|
43
|
-
# * region<~String> - optional region to use, in ['eu-west-1', 'us-east-1', 'us-west-1'
|
43
|
+
# * region<~String> - optional region to use, in ['eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'ap-southeast-1']
|
44
44
|
#
|
45
45
|
# ==== Returns
|
46
46
|
# * SES object with connection to AWS.
|