blob: eb9ab160cd833183d030129217ecf89006df490f [file] [log] [blame]
package apiGatewayDeploy
import (
"github.com/30x/apid"
"github.com/30x/apidApigeeSync"
)
func initListener(services apid.Services) {
services.Events().Listen(apidApigeeSync.ApigeeSyncEventSelector, &apigeeSyncHandler{})
}
type apigeeSyncHandler struct {
}
func (h *apigeeSyncHandler) String() string {
return "gatewayDeploy"
}
func (h *apigeeSyncHandler) Handle(e apid.Event) {
changeSet, ok := e.(*apidApigeeSync.ChangeSet)
if !ok {
log.Errorf("Received non-ChangeSet event. This shouldn't happen!")
return
}
log.Debugf("apigeeSyncEvent: %d changes", len(changeSet.Changes))
for _, payload := range changeSet.Changes {
if payload.Data.EntityType != "deployment" {
continue
}
switch payload.Data.Operation {
case "create":
insertDeployment(payload.Data)
}
}
}
func insertDeployment(payload apidApigeeSync.DataPayload) {
_, err := db.Exec("INSERT INTO BUNDLE_DEPLOYMENT (id, manifest, created_at, deploy_status) VALUES (?,?,?,?);",
payload.EntityIdentifier,
payload.PldCont.Manifest,
payload.PldCont.CreatedAt,
DEPLOYMENT_STATE_UNUSED,
)
if err != nil {
log.Errorf("INSERT BUNDLE_DEPLOYMENT Failed: (%s, %v)", payload.EntityIdentifier, err)
return
}
log.Infof("INSERT BUNDLE_DEPLOYMENT Success: (%s)", payload.EntityIdentifier)
orchestrateDeploymentAndTrigger()
}