// ServiceInstanceCreate creates a service instance func (ac *APIController) ServiceInstanceCreate(serviceInstance *contivModel.ServiceInstance) error { log.Infof("Received ServiceInstanceCreate: %+v", serviceInstance) inst := serviceInstance // Find the service serviceKey := inst.TenantName + ":" + inst.AppName + ":" + inst.ServiceName service := contivModel.FindService(serviceKey) if service == nil { log.Errorf("Service %s not found for instance: %+v", serviceKey, inst) return errors.New("Service not found") } // Add links modeldb.AddLinkSet(&service.LinkSets.Instances, inst) modeldb.AddLink(&inst.Links.Service, service) // setup links with volumes for _, volumeName := range inst.Volumes { // find the volume volume := contivModel.FindVolume(inst.TenantName + ":" + volumeName) if volume == nil { log.Errorf("Could not find colume %s for service: %s", volumeName, inst.Key) return errors.New("Could not find the volume") } // add Links modeldb.AddLinkSet(&inst.LinkSets.Volumes, volume) modeldb.AddLinkSet(&volume.LinkSets.ServiceInstances, inst) } return nil }
// ServiceInstanceCreate creates a service instance func (ac *APIController) ServiceInstanceCreate(serviceInstance *contivModel.ServiceInstance) error { log.Infof("Received ServiceInstanceCreate: %+v", serviceInstance) inst := serviceInstance // Find the service serviceKey := inst.TenantName + ":" + inst.AppName + ":" + inst.ServiceName service := contivModel.FindService(serviceKey) if service == nil { log.Errorf("Service %s not found for instance: %+v", serviceKey, inst) return core.Errorf("Service not found") } // Add links modeldb.AddLinkSet(&service.LinkSets.Instances, inst) modeldb.AddLink(&inst.Links.Service, service) return nil }