com.atlassian.bamboo.build.artifact
Class S3ArtifactHandler

java.lang.Object
  extended by com.atlassian.bamboo.build.artifact.AbstractArtifactHandler
      extended by com.atlassian.bamboo.build.artifact.S3ArtifactHandler
All Implemented Interfaces:
ArtifactHandler, InitablePluginModule<ArtifactHandlerModuleDescriptor>, BambooPluginModule

public class S3ArtifactHandler
extends AbstractArtifactHandler


Field Summary
static int AWS_BULK_DELETE_LIMIT
           
 
Fields inherited from class com.atlassian.bamboo.build.artifact.AbstractArtifactHandler
ALL_AGENT_TYPES, LOCAL_AGENTS, NON_LOCAL_AGENTS
 
Fields inherited from interface com.atlassian.bamboo.build.artifact.ArtifactHandler
LAN_SPEED, LOCAL_SPEED, WAN_SPEED
 
Constructor Summary
S3ArtifactHandler()
           
 
Method Summary
 boolean canHandleArtifact(ArtifactDefinitionContext artifact, Map<String,String> artifactHandlersConfiguration)
           
 ArtifactLinkDataProvider getArtifactLinkDataProvider(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
           
 ArtifactLinkDataProvider getArtifactLinkDataProvider(ArtifactLink artifactLink, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
           
 int getSpeed(Map<String,String> artifactHandlersConfiguration)
          Return approximate transfer speed of this artifact handler in bytes per second for the specified configuration.
 boolean moveArtifactToGlobalStorage(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Move artifact to a 'global storage'.
 ArtifactHandlerPublishingResult publish(PlanResultKey planResultKey, ArtifactDefinitionContext artifact, ArtifactPublishingConfig artifactPublishingConfig)
           
 void removeArtifactFromStorage(Artifact artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single artifact.
 void removeArtifactFromStorage(PlanResultKey planResultKey, ImmutableArtifactDefinitionBase artifact, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single artifact.
 void removeArtifactsFromStorage(PlanKey planKey, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for all results of a single.
 void removeArtifactsFromStorage(PlanResultKey planResultKey, ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
          Removes artifact files for a single plan result.
 ArtifactRetrievalStatus retrieve(PlanResultKey planResultKey, ResultKey resultKey, ArtifactSubscriptionContext artifactSubscription, ArtifactRetrievalConfig artifactRetrievalConfig)
          Retrieve plan artifact.
 ArtifactRetrievalStatus retrieve(ResultKey clientKey, Artifact artifact, ArtifactSubscriptionContext artifactSubscription, ArtifactRetrievalConfig artifactRetrievalConfig)
          Retrieve arbitrary Artifact.
 
Methods inherited from class com.atlassian.bamboo.build.artifact.AbstractArtifactHandler
configProvider, configProvider, getConfigurationKey, getConfigValue, getDefaultConfiguration, getModuleDescriptor, getSupportedAgents, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AWS_BULK_DELETE_LIMIT

public static final int AWS_BULK_DELETE_LIMIT
See Also:
Constant Field Values
Constructor Detail

S3ArtifactHandler

public S3ArtifactHandler()
Method Detail

publish

@NotNull
public ArtifactHandlerPublishingResult publish(@NotNull
                                                       PlanResultKey planResultKey,
                                                       @NotNull
                                                       ArtifactDefinitionContext artifact,
                                                       @NotNull
                                                       ArtifactPublishingConfig artifactPublishingConfig)
                                        throws IOException
Throws:
IOException

canHandleArtifact

public boolean canHandleArtifact(ArtifactDefinitionContext artifact,
                                 Map<String,String> artifactHandlersConfiguration)
Specified by:
canHandleArtifact in interface ArtifactHandler
Overrides:
canHandleArtifact in class AbstractArtifactHandler

moveArtifactToGlobalStorage

public boolean moveArtifactToGlobalStorage(@NotNull
                                           Artifact artifact,
                                           @NotNull
                                           ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Description copied from interface: ArtifactHandler
Move artifact to a 'global storage'. Artifacts in 'global storage' should only be removed when ArtifactHandler.removeArtifactFromStorage(Artifact, ArtifactHandlerConfigProvider) is called. It is not a requirement to physically move the files as long as the above contract is fulfilled.

Returns:
true if move successful

retrieve

@NotNull
public ArtifactRetrievalStatus retrieve(@NotNull
                                                PlanResultKey planResultKey,
                                                @Nullable
                                                ResultKey resultKey,
                                                @NotNull
                                                ArtifactSubscriptionContext artifactSubscription,
                                                @NotNull
                                                ArtifactRetrievalConfig artifactRetrievalConfig)
                                 throws IOException
Description copied from interface: ArtifactHandler
Retrieve plan artifact. Artifact is found by label (taken from artifactSubscription) and planResultKey.

Parameters:
planResultKey - identifier of source plan
resultKey - identifier of plan or deployment doing the download
artifactSubscription - download details (e.g. target path, copy pattern)
artifactRetrievalConfig - handler specific configuration
Throws:
IOException

retrieve

@NotNull
public ArtifactRetrievalStatus retrieve(@NotNull
                                                ResultKey clientKey,
                                                @NotNull
                                                Artifact artifact,
                                                @NotNull
                                                ArtifactSubscriptionContext artifactSubscription,
                                                @NotNull
                                                ArtifactRetrievalConfig artifactRetrievalConfig)
                                 throws IOException
Description copied from interface: ArtifactHandler
Retrieve arbitrary Artifact. Artifact is found by the information in artifact parameter.

Parameters:
clientKey - identifier of plan or deployment doing the download
artifact - artifact information
artifactSubscription - download details (e.g. target path, copy pattern)
artifactRetrievalConfig - handler specific configuration
Throws:
IOException

getSpeed

public int getSpeed(@NotNull
                    Map<String,String> artifactHandlersConfiguration)
Description copied from interface: ArtifactHandler
Return approximate transfer speed of this artifact handler in bytes per second for the specified configuration. Result of this method might be taken into account when deciding which artifact handler to use if multiple handlers are enabled.

Parameters:
artifactHandlersConfiguration - artifact handler configuration
Returns:
approximate transfer speed in Bps, for example: ArtifactHandler.LOCAL_SPEED, ArtifactHandler.LAN_SPEED, ArtifactHandler.WAN_SPEED

removeArtifactFromStorage

public void removeArtifactFromStorage(@NotNull
                                      Artifact artifact,
                                      @NotNull
                                      ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Description copied from interface: ArtifactHandler
Removes artifact files for a single artifact.


removeArtifactFromStorage

public void removeArtifactFromStorage(@NotNull
                                      PlanResultKey planResultKey,
                                      @NotNull
                                      ImmutableArtifactDefinitionBase artifact,
                                      @NotNull
                                      ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Description copied from interface: ArtifactHandler
Removes artifact files for a single artifact. Called when removing ArtifactLink Should not remove artifacts that were moved to global storage.


removeArtifactsFromStorage

public void removeArtifactsFromStorage(@NotNull
                                       PlanResultKey planResultKey,
                                       @NotNull
                                       ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Description copied from interface: ArtifactHandler
Removes artifact files for a single plan result. Called when removing ResultsSummary Should not remove artifacts that were moved to global storage.


removeArtifactsFromStorage

public void removeArtifactsFromStorage(@NotNull
                                       PlanKey planKey,
                                       @NotNull
                                       ArtifactHandlerConfigProvider artifactHandlerConfigProvider)
Description copied from interface: ArtifactHandler
Removes artifact files for all results of a single. Called when removing Plan Should not remove artifacts that were moved to global storage.


getArtifactLinkDataProvider

public ArtifactLinkDataProvider getArtifactLinkDataProvider(ArtifactLink artifactLink,
                                                            @NotNull
                                                            ArtifactHandlerConfigProvider artifactHandlerConfigProvider)

getArtifactLinkDataProvider

@Nullable
public ArtifactLinkDataProvider getArtifactLinkDataProvider(Artifact artifact,
                                                                     @NotNull
                                                                     ArtifactHandlerConfigProvider artifactHandlerConfigProvider)


Copyright © 2015 Atlassian Software Systems Pty Ltd. All rights reserved.