public async Task <HandlerResult> OnWatch(string id, Dictionary <string, string> switches, object context) { try { string operation = ""; if (context != null) { var jObject = (JObject)JsonConvert.DeserializeObject(context.ToString()); if (jObject.Property("operation") != null) { operation = jObject.Property("operation").Value.ToString(); } } var response = await OSBClient.QueryServiceInstanceProvisionStatusAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"], id, operation); return(new HandlerResult { Succeeded = response.IsSuccessStatusCode, UpdatedState = await response.Content.ReadAsStringAsync(), HTTPStatus = response.StatusCode, ErrorMessage = response.ReasonPhrase }); } catch (Exception exp) { return(new HandlerResult { Succeeded = false, ErrorMessage = exp.Message, HTTPStatus = System.Net.HttpStatusCode.InternalServerError }); } }
public async Task <HandlerResult> OnDeleted(string id, string entityJosn, Dictionary <string, string> switches) { try { var state = JsonConvert.DeserializeObject <BindingwithResult>(entityJosn); var response = await OSBClient.UnbindAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"], state.Binding.InstanceId, state.Binding.ServiceId, state.Binding.PlanId, state.Binding.BindingId); return(new HandlerResult { Succeeded = response.IsSuccessStatusCode, ErrorMessage = response.ReasonPhrase, HTTPStatus = response.StatusCode, UpdatedEntity = null }); } catch (Exception exp) { return(new HandlerResult { Succeeded = false, ErrorMessage = exp.Message, HTTPStatus = System.Net.HttpStatusCode.InternalServerError, UpdatedEntity = null }); } }
public async Task <HandlerResult> OnCreated(string id, string entityJson, Dictionary <string, string> switches) { try { var services = await OSBClient.CatalogAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"]); var response = await CatalogServiceClient.CatalogServiceClient.PutEntityAsync(switches["CSEndpoint"], "service-class", id, JsonConvert.SerializeObject(services), "id"); return(new HandlerResult { Succeeded = response.IsSuccessStatusCode, ErrorMessage = response.ReasonPhrase, HTTPStatus = response.StatusCode, UpdatedEntity = null }); } catch (Exception exp) { return(new HandlerResult { Succeeded = false, ErrorMessage = exp.Message, HTTPStatus = System.Net.HttpStatusCode.InternalServerError, UpdatedEntity = null }); } }
private async Task OSBCheckProvisionState(object state) { string[] parms = (string[])state; var response = await OSBClient.QueryServiceInstanceProvisionStatusAsync(parms[0], parms[1], parms[2], parms[3]); if (response.State == "succeeded") { string bindingId = Guid.NewGuid().ToString("N").Substring(0, 8); var bindResponse = await OSBClient.BindAsync(parms[0], parms[1], parms[2], parms[3], parms[4], parms[5], bindingId); await this.StateManager.SetStateAsync <BindingResult>("Binding", bindResponse); UnregisterTimer(mUpdateTimer); } }
private async Task OSBBootstrap(string OSBEndpoint, string OSBUser, string OSBPassword, string serviceType, string servicePlan) { var catalog = await OSBClient.CatalogAsync(OSBEndpoint, OSBUser, OSBPassword); var brokeredService = catalog.FirstOrDefault(s => s.Name == serviceType || s.Id == serviceType); if (brokeredService != null) { var plan = brokeredService.Plans.FirstOrDefault(p => p.Name == servicePlan || p.Id == servicePlan); if (plan != null) { var response = await OSBClient.ProvisionAsync(OSBEndpoint, OSBUser, OSBPassword, brokeredService.Id, plan.Id, this.Id.GetStringId()); mUpdateTimer = RegisterTimer( OSBCheckProvisionState, new string[] { OSBEndpoint, OSBUser, OSBPassword, this.Id.GetStringId(), brokeredService.Id, plan.Id }, TimeSpan.FromMilliseconds(1), TimeSpan.FromMilliseconds(5)); } } }
public async Task <BindingwithResult> OSBBindAsync(string instanceId, string serviceId, string planId, string bindingId, CancellationToken cancellationToken) { var bindingResult = await OSBClient.BindAsync("http://104.45.224.242", "haishi", "P$ssword!", instanceId, serviceId, planId, bindingId); var bindingWithResult = new BindingwithResult { Binding = new Binding { BindingId = bindingId, InstanceId = instanceId, ServiceId = serviceId, PlanId = planId } , Result = bindingResult }; await this.StateManager.SetStateAsync <BindingwithResult>("bindingResult", bindingWithResult, cancellationToken); return(bindingWithResult); }
public async Task <HandlerResult> OnCreated(string id, string entityJson, Dictionary <string, string> switches) { try { var binding = JsonConvert.DeserializeObject <Binding>(entityJson); var bindingResult = await OSBClient.BindAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"], binding.InstanceId, binding.ServiceId, binding.PlanId, id); var bindingWithResult = new BindingwithResult { Binding = new Binding { BindingId = id, InstanceId = binding.InstanceId, ServiceId = binding.ServiceId, PlanId = binding.PlanId } , Result = bindingResult }; return(new HandlerResult { Succeeded = true, ErrorMessage = null, HTTPStatus = System.Net.HttpStatusCode.OK, UpdatedEntity = JsonConvert.SerializeObject(bindingWithResult) }); } catch (Exception exp) { return(new HandlerResult { Succeeded = false, ErrorMessage = exp.Message, HTTPStatus = System.Net.HttpStatusCode.InternalServerError, UpdatedEntity = null }); } }
public async Task <HandlerResult> OnCreated(string id, string entityJson, Dictionary <string, string> switches) { try { var instance = JsonConvert.DeserializeObject <ServiceInstance>(entityJson); instance.InstanceId = id; var services = await OSBClient.CatalogAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"]); var service = services.FirstOrDefault(s => s.Id == instance.ServiceId); if (service == null) { return new HandlerResult { Succeeded = false, ErrorMessage = string.Format("Service Id {0} is not found.", instance.ServiceId) } } ; var plan = service.Plans.FirstOrDefault(p => p.Id == instance.PlanId); if (plan == null) { return(new HandlerResult { Succeeded = false, ErrorMessage = string.Format("Plan Id {0} is not found.", instance.PlanId) }); } var response = await OSBClient.ProvisionAsync(switches["OSBEndpoint"], switches["OSBUser"], switches["OSBPassword"], instance.ServiceId, instance.PlanId, id, instance.Parameters); if (response.StatusCode == System.Net.HttpStatusCode.OK || response.StatusCode == System.Net.HttpStatusCode.Created || response.StatusCode == System.Net.HttpStatusCode.Accepted) { return(new HandlerResult { Succeeded = true, UpdatedEntity = JsonConvert.SerializeObject(instance), UpdatedState = await response.Content.ReadAsStringAsync(), HTTPStatus = response.StatusCode, ErrorMessage = null }); } else { return(new HandlerResult { Succeeded = false, HTTPStatus = response.StatusCode, //UpdatedEntity = await response.Content.ReadAsStringAsync(), ErrorMessage = response.ReasonPhrase }); } } catch (Exception exp) { return(new HandlerResult { Succeeded = false, ErrorMessage = exp.Message, HTTPStatus = System.Net.HttpStatusCode.InternalServerError }); } }
public async Task OSBUnbindAsync(CancellationToken cancellationToken) { var state = await this.StateManager.GetStateAsync <BindingwithResult>("bindingResult", cancellationToken); await OSBClient.UnbindAsync("http://104.45.224.242", "haishi", "P$ssword!", state.Binding.InstanceId, state.Binding.ServiceId, state.Binding.PlanId, state.Binding.BindingId); }