apigee / apigee-deploy-maven-plugin

Apache License 2.0
80 stars 167 forks source link

SharedFlow deploy does not update the shared flow if it is being actively used by an API proxy #104

Closed Deepakom closed 4 years ago

Deepakom commented 5 years ago

We are using this command to deploy a shared flow. Deploy works if the shared flow is being deployed the first time into an environment. Also works if the shared flow exists but is not being used by any API proxy. Noticed that if the shared flow is in use then the command still executes without any errors but the changes to the shared flow are not deployed.

mvn apigee-enterprise:deploy -Ddeployment.suffix=cicd -Papigee -Denv=env1 -Dorg=org1 -DvhostProtocol=https -DvhostDomainName=domainName1 -DvhostDomainPort=443 -DvhostEdgeName=vhost1 -Dapigee.config.dir=target/resources/edge -Dapigee.config.options=create -Dapigee.config.exportDir=target/test/integration -Dapigee.api.port=port1 -Dapigee.api.host=host1 -Dapigee.api.protocol=https -Dusername= -Dpassword=

ssvaidyanathan commented 5 years ago

@Deepakom - Can you please confirm the profile (apigee) has the apitype set as "sharedflow" <apigee.apitype>sharedflow</apigee.apitype> ? Also can you run the command with -X and share the logs ? Please remove all sensitive information before sharing the logs ?

Deepakom commented 5 years ago

Ran a few more tests and I was getting mixed results. This looks like an issue with the Apigee Management UI . Looks like there must be some caching of bundles going on in the UI due to which it does not reflect the changes to deployment. Logging out of the UI and logging back in showed me the updates that I was looking for.

Deepakom commented 5 years ago

For shared flow deployments the same revision seems to get updated even if -Doptions=create is specified during the deploy stage. Is this intentional?

Command below when executed on an API proxy ends up creating a new revision and deploying that revision. For a shared flow it updates an existing revision .
mvn apigee-enterprise:deploy -Ddeployment.suffix=cicd -Papigee -Denv=env1 -Dorg=org1 -DvhostProtocol=https -DvhostDomainName=domainName1 -DvhostDomainPort=443 -DvhostEdgeName=vhost1 -Dapigee.config.dir=target/resources/edge -Dapigee.config.options=create -Dapigee.config.exportDir=target/test/integration -Dapigee.api.port=port1 -Dapigee.api.host=host1 -Dapigee.api.protocol=https -Dusername= -Dpassword=

ssvaidyanathan commented 5 years ago

Looks like you are passing update as the options value. apigee.config.options=create is for the configuration plugin and is not used by the deployment plugin.

ssvaidyanathan commented 4 years ago

Closing this issue