func (resource ServiceInstancesSummaries) ToModels() (instances []models.ServiceInstance) { for _, instanceSummary := range resource.ServiceInstances { applicationNames := resource.findApplicationNamesForInstance(instanceSummary.Name) planSummary := instanceSummary.ServicePlan servicePlan := models.ServicePlanFields{} servicePlan.Name = planSummary.Name servicePlan.GUID = planSummary.GUID offeringSummary := planSummary.ServiceOffering serviceOffering := models.ServiceOfferingFields{} serviceOffering.Label = offeringSummary.Label serviceOffering.Provider = offeringSummary.Provider serviceOffering.Version = offeringSummary.Version instance := models.ServiceInstance{} instance.Name = instanceSummary.Name instance.LastOperation.Type = instanceSummary.LastOperation.Type instance.LastOperation.State = instanceSummary.LastOperation.State instance.LastOperation.Description = instanceSummary.LastOperation.Description instance.ApplicationNames = applicationNames instance.ServicePlan = servicePlan instance.ServiceOffering = serviceOffering instances = append(instances, instance) } return }
func (resource ServiceOfferingResource) ToModel() (offering models.ServiceOffering) { offering.ServiceOfferingFields = resource.ToFields() for _, p := range resource.Entity.ServicePlans { servicePlan := models.ServicePlanFields{} servicePlan.Name = p.Entity.Name servicePlan.Guid = p.Metadata.Guid offering.Plans = append(offering.Plans, servicePlan) } return offering }
func (actor ServicePlanHandler) UpdatePlanAndOrgForService(serviceName, planName, orgName string, setPlanVisibility bool) (PlanAccess, error) { service, err := actor.serviceBuilder.GetServiceByName(serviceName) if err != nil { return PlanAccessError, err } org, err := actor.orgRepo.FindByName(orgName) if err != nil { return PlanAccessError, err } found := false var servicePlan models.ServicePlanFields for i, val := range service.Plans { if val.Name == planName { found = true servicePlan = service.Plans[i] } } if !found { return PlanAccessError, errors.New(fmt.Sprintf("Service plan %s not found", planName)) } if !servicePlan.Public && setPlanVisibility { if servicePlan.OrgHasVisibility(orgName) { return Limited, nil } // Enable service access err = actor.servicePlanVisibilityRepo.Create(servicePlan.Guid, org.Guid) if err != nil { return PlanAccessError, err } } else if !servicePlan.Public && !setPlanVisibility { // Disable service access if servicePlan.OrgHasVisibility(org.Name) { err = actor.deleteServicePlanVisibilities(map[string]string{"organization_guid": org.Guid, "service_plan_guid": servicePlan.Guid}) if err != nil { return PlanAccessError, err } } } access := actor.findPlanAccess(servicePlan) return access, nil }
userProvidedServiceInstanceRepo := &testapi.FakeUserProvidedServiceInstanceRepo{} ui := callUpdateUserProvidedService(args, requirementsFactory, userProvidedServiceInstanceRepo) Expect(userProvidedServiceInstanceRepo.UpdateServiceInstance).NotTo(Equal(serviceInstance)) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"JSON is invalid"}, )) }) It("TestUpdateUserProvidedServiceWithAServiceInstanceThatIsNotUserProvided", func() { args := []string{"-p", `{"foo":"bar"}`, "service-name"} plan := models.ServicePlanFields{} plan.Guid = "my-plan-guid" serviceInstance := models.ServiceInstance{} serviceInstance.Name = "found-service-name" serviceInstance.ServicePlan = plan requirementsFactory := &testreq.FakeReqFactory{ LoginSuccess: true, ServiceInstance: serviceInstance, } userProvidedServiceInstanceRepo := &testapi.FakeUserProvidedServiceInstanceRepo{} ui := callUpdateUserProvidedService(args, requirementsFactory, userProvidedServiceInstanceRepo) Expect(userProvidedServiceInstanceRepo.UpdateServiceInstance).NotTo(Equal(serviceInstance))
requirementsFactory := &testreq.FakeReqFactory{LoginSuccess: true, TargetedSpaceSuccess: true} ui := callShowService([]string{}, requirementsFactory) Expect(ui.FailedWithUsage).To(BeTrue()) ui = callShowService([]string{"my-service"}, requirementsFactory) Expect(ui.FailedWithUsage).To(BeFalse()) }) It("TestShowServiceOutput", func() { offering := models.ServiceOfferingFields{} offering.Label = "mysql" offering.DocumentationUrl = "http://documentation.url" offering.Description = "the-description" plan := models.ServicePlanFields{} plan.Guid = "plan-guid" plan.Name = "plan-name" serviceInstance := models.ServiceInstance{} serviceInstance.Name = "service1" serviceInstance.Guid = "service1-guid" serviceInstance.ServicePlan = plan serviceInstance.ServiceOffering = offering requirementsFactory := &testreq.FakeReqFactory{ LoginSuccess: true, TargetedSpaceSuccess: true, ServiceInstance: serviceInstance, } ui := callShowService([]string{"service1"}, requirementsFactory)