brightbox-cli 0.16.0 → 0.17.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/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.
|