| 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() |
| } |