Add codepipeline.update_pipeline

This commit is contained in:
gruebel 2019-12-15 17:28:59 +01:00
commit b2c44ce50d
5 changed files with 267 additions and 5 deletions

View file

@ -11,6 +11,7 @@ from moto.iam import iam_backends
from moto.codepipeline.exceptions import (
InvalidStructureException,
PipelineNotFoundException,
ResourceNotFoundException,
)
from moto.core import BaseBackend, BaseModel
@ -19,7 +20,10 @@ DEFAULT_ACCOUNT_ID = "123456789012"
class CodePipeline(BaseModel):
def __init__(self, region, pipeline):
self.pipeline = self._add_default_values(pipeline)
# the version number for a new pipeline is always 1
pipeline["version"] = 1
self.pipeline = self.add_default_values(pipeline)
self.tags = {}
self._arn = "arn:aws:codepipeline:{0}:{1}:{2}".format(
@ -36,7 +40,7 @@ class CodePipeline(BaseModel):
"updated": iso_8601_datetime_with_milliseconds(self._updated),
}
def _add_default_values(self, pipeline):
def add_default_values(self, pipeline):
for stage in pipeline["stages"]:
for action in stage["actions"]:
if "runOrder" not in action:
@ -106,6 +110,23 @@ class CodePipelineBackend(BaseBackend):
return codepipeline.pipeline, codepipeline.metadata
def update_pipeline(self, pipeline):
codepipeline = self.pipelines.get(pipeline["name"])
if not codepipeline:
raise ResourceNotFoundException(
"The account with id '{0}' does not include a pipeline with the name '{1}'".format(
DEFAULT_ACCOUNT_ID, pipeline["name"]
)
)
# version number is auto incremented
pipeline["version"] = codepipeline.pipeline["version"] + 1
codepipeline._updated = datetime.utcnow()
codepipeline.pipeline = codepipeline.add_default_values(pipeline)
return codepipeline.pipeline
codepipeline_backends = {}
for region in Session().get_available_regions("codepipeline"):