Class: Fog::AWS::DataPipeline::Real

Inherits:
Object
  • Object
show all
Includes:
CredentialFetcher::ConnectionMethods, Shared
Defined in:
lib/fog/aws/data_pipeline.rb,
lib/fog/aws/requests/data_pipeline/query_objects.rb,
lib/fog/aws/requests/data_pipeline/list_pipelines.rb,
lib/fog/aws/requests/data_pipeline/create_pipeline.rb,
lib/fog/aws/requests/data_pipeline/delete_pipeline.rb,
lib/fog/aws/requests/data_pipeline/describe_objects.rb,
lib/fog/aws/requests/data_pipeline/activate_pipeline.rb,
lib/fog/aws/requests/data_pipeline/describe_pipelines.rb,
lib/fog/aws/requests/data_pipeline/deactivate_pipeline.rb,
lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb,
lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Shared

#transform_objects

Methods included from CredentialFetcher::ConnectionMethods

#refresh_credentials_if_expired

Constructor Details

#initialize(options = {}) ⇒ Real

Initialize connection to DataPipeline

Notes

options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection

Examples

datapipeline = DataPipeline.new(
 :aws_access_key_id => your_aws_access_key_id,
 :aws_secret_access_key => your_aws_secret_access_key
)

Parameters

  • options<~Hash> - config arguments for connection. Defaults to {}.

    • region<~String> - optional region to use. For instance, ‘eu-west-1’, ‘us-east-1’ and etc.

Returns

  • DataPipeline object with connection to AWS.



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/fog/aws/data_pipeline.rb', line 103

def initialize(options={})
  @use_iam_profile = options[:use_iam_profile]
  @instrumentor       = options[:instrumentor]
  @instrumentor_name  = options[:instrumentor_name] || 'fog.aws.data_pipeline'
  @connection_options     = options[:connection_options] || {}
  @version    = '2012-10-29'
  @region     = options[:region]      || 'us-east-1'
  @host       = options[:host]        || "datapipeline.#{@region}.amazonaws.com"
  @path       = options[:path]        || '/'
  @persistent = options[:persistent]  || false
  @port       = options[:port]        || 443
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)

  setup_credentials(options)
end

Instance Attribute Details

#regionObject (readonly)

Returns the value of attribute region.



82
83
84
# File 'lib/fog/aws/data_pipeline.rb', line 82

def region
  @region
end

Instance Method Details

#activate_pipeline(id) ⇒ Object

Activate a pipeline docs.aws.amazon.com/datapipeline/latest/APIReference/API_ActivatePipeline.html

Parameters

  • PipelineId <~String> - The ID of the pipeline to activate

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



12
13
14
15
16
17
18
19
# File 'lib/fog/aws/requests/data_pipeline/activate_pipeline.rb', line 12

def activate_pipeline(id)
  params = { 'pipelineId' => id }

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.ActivatePipeline' }
  })
end

#create_pipeline(unique_id, name, description = nil, tags = nil) ⇒ Object

Create a pipeline docs.aws.amazon.com/datapipeline/latest/APIReference/API_CreatePipeline.html

Parameters

  • UniqueId <~String> - A unique ID for of the pipeline

  • Name <~String> - The name of the pipeline

  • Tags <~Hash> - Key/value string pairs to categorize the pipeline

  • Description <~String> - Description of the pipeline

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/fog/aws/requests/data_pipeline/create_pipeline.rb', line 15

def create_pipeline(unique_id, name, description=nil, tags=nil)
  params = {
    'uniqueId' => unique_id,
    'name' => name,
  }
  params['tags'] = tags.map {|k,v| {"key" => k.to_s, "value" => v.to_s}} unless tags.nil? || tags.empty?
  params['Description'] = description if description

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.CreatePipeline' },
  })
end

#deactivate_pipeline(id, cancel_active = true) ⇒ Object

Activate a pipeline docs.aws.amazon.com/datapipeline/latest/APIReference/API_DectivatePipeline.html

Parameters

  • PipelineId <~String> - The ID of the pipeline to activate

‘ cancelActive <~Boolean> - Indicates whether to cancel any running objects. The default is true, which sets the state of any running objects to CANCELED. If this value is false, the pipeline is deactivated after all running objects finish.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



13
14
15
16
17
18
19
20
# File 'lib/fog/aws/requests/data_pipeline/deactivate_pipeline.rb', line 13

def deactivate_pipeline(id, cancel_active=true)
  params = { 'pipelineId' => id, 'cancelActive' => cancel_active }

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.DectivatePipeline' }
  })
end

#delete_pipeline(id) ⇒ Object

Delete a pipeline docs.aws.amazon.com/datapipeline/latest/APIReference/API_DeletePipeline.html

Parameters

  • PipelineId <~String> - The id of the pipeline to delete

Returns

  • success<~Boolean> - Whether the delete was successful



11
12
13
14
15
16
17
18
19
20
# File 'lib/fog/aws/requests/data_pipeline/delete_pipeline.rb', line 11

def delete_pipeline(id)
  params = { 'pipelineId' => id }

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.DeletePipeline' },
  })

  200 == response.status
end

#describe_objects(id, objectIds, options = {}) ⇒ Object

Queries a pipeline for the names of objects that match a specified set of conditions. docs.aws.amazon.com/datapipeline/latest/APIReference/API_DescribeObjects.html

Parameters

  • PipelineId <~String> - The ID of the pipeline

  • ObjectIds <~Array> - Identifiers of the pipeline objects that contain the definitions

    to be described. You can pass as many as 25 identifiers in a
    single call to DescribeObjects.
    
  • Options <~Hash> - A Hash of additional options desrcibed in the API docs.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/data_pipeline/describe_objects.rb', line 16

def describe_objects(id, objectIds, options={})
  params = options.merge({
    'pipelineId' => id,
    'objectIds' => objectIds,
  })

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.DescribeObjects' },
  })
end

#describe_pipelines(ids) ⇒ Object

Describe pipelines docs.aws.amazon.com/datapipeline/latest/APIReference/API_DescribePipelines.html

Parameters

  • PipelineIds <~String> - ID of pipeline to retrieve information for

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



12
13
14
15
16
17
18
19
20
# File 'lib/fog/aws/requests/data_pipeline/describe_pipelines.rb', line 12

def describe_pipelines(ids)
  params = {}
  params['pipelineIds'] = ids

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.DescribePipelines' },
  })
end

#get_pipeline_definition(id) ⇒ Object

Get pipeline definition JSON docs.aws.amazon.com/datapipeline/latest/APIReference/API_GetPipelineDefinition.html

Parameters

  • PipelineId <~String> - The ID of the pipeline

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



12
13
14
15
16
17
18
19
20
21
# File 'lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb', line 12

def get_pipeline_definition(id)
  params = {
    'pipelineId' => id,
  }

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.GetPipelineDefinition' },
  })
end

#list_pipelines(options = {}) ⇒ Object

List all pipelines docs.aws.amazon.com/datapipeline/latest/APIReference/API_ListPipelines.html

Parameters

  • Marker <~String> - The starting point for the results to be returned.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



12
13
14
15
16
17
18
19
20
# File 'lib/fog/aws/requests/data_pipeline/list_pipelines.rb', line 12

def list_pipelines(options={})
  params = {}
  params['Marker'] = options[:marker] if options[:marker]

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.ListPipelines' },
  })
end

#owner_idObject



120
121
122
# File 'lib/fog/aws/data_pipeline.rb', line 120

def owner_id
  @owner_id ||= security_groups.get('default').owner_id
end

#put_pipeline_definition(id, pipeline_objects, options = {}) ⇒ Object

Put raw pipeline definition JSON docs.aws.amazon.com/datapipeline/latest/APIReference/API_PutPipelineDefinition.html

Parameters

  • PipelineId <~String> - The ID of the pipeline

  • PipelineObjects <~String> - Objects in the pipeline

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb', line 57

def put_pipeline_definition(id, pipeline_objects, options={})
  params = {
    'pipelineId' => id,
    'pipelineObjects' => transform_objects(pipeline_objects),
  }.merge(options)

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.PutPipelineDefinition' },
  })
end

#query_objects(id, sphere, options = {}) ⇒ Object

Queries a pipeline for the names of objects that match a specified set of conditions. docs.aws.amazon.com/datapipeline/latest/APIReference/API_QueryObjects.html

Parameters

  • PipelineId <~String> - The ID of the pipeline

  • Sphere <~String> - Specifies whether the query applies to components or instances.

    Allowable values: COMPONENT, INSTANCE, ATTEMPT.
    
  • Marker <~String> - The starting point for the results to be returned.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/data_pipeline/query_objects.rb', line 15

def query_objects(id, sphere, options={})
  params = {
    'pipelineId' => id,
    'sphere' => sphere,
  }
  params['marker'] = options[:marker] if options[:marker]

  response = request({
    :body => Fog::JSON.encode(params),
    :headers => { 'X-Amz-Target' => 'DataPipeline.QueryObjects' },
  })
end

#reloadObject



124
125
126
# File 'lib/fog/aws/data_pipeline.rb', line 124

def reload
  @connection.reset
end