public IHttpActionResult GetAllTenants(string vbrHost) { logger.Info("Recevied request to get all Veeam tenants"); String command = "Get-VBRCloudTenant"; VeeamTransportMessage response = psAgent.runCommand(vbrHost, command); if (response.status.Equals("Error")) { logger.Error("Error retrieving all Veeam tenants"); logger.Error((string)response.message); } Collection <VeeamTenant> veeamTenants = new Collection <VeeamTenant>(); Collection <PSObject> tenants = (Collection <PSObject>)response.message; foreach (PSObject tenant in tenants) { VeeamTenant veeamTenant = new VeeamTenant(); veeamTenant.uid = tenant.Properties["Id"].Value.ToString(); veeamTenant.username = tenant.Properties["Name"].Value.ToString(); veeamTenant.password = tenant.Properties["Password"].Value.ToString(); if (tenant.Properties["LeaseExpirationDate"].Value != null) { veeamTenant.leaseExpiration = tenant.Properties["LeaseExpirationDate"].Value.ToString(); } veeamTenants.Add(veeamTenant); } return(Ok(veeamTenants)); }
public HttpResponseMessage PostVeeamTenant(string vbrHost, [FromBody] dynamic newTenant) { logger.Info("Received request to create new veeam tenant"); dynamic validate = schemaValidator.verifyJSONPayload("NewTenant", newTenant); // Check if VeeamTransportMessage type is returned. If so, schema filter found an // error with the JSON payload so return the error message back. if (validate is VeeamTransportMessage) { return(Request.CreateResponse(HttpStatusCode.BadRequest, (String)validate.message)); } VeeamTenant tenant = null; String command = ""; if (newTenant.leaseExpiration != null) { command = "Add-VBRCloudTenant -Name '" + newTenant.username + "' -Password '" + newTenant.password + "' -Description 'Created from PSVeeamRestPowerShell' -EnableLeaseExpiration -LeaseExpirationDate '" + newTenant.leaseExpiration + "'"; } else { command = "Add-VBRCloudTenant -Name '" + newTenant.username + "' -Password '" + newTenant.password + "' -Description 'Created from PSVeeamRestPowerShell'"; } VeeamTransportMessage response = psAgent.runCommand(vbrHost, command); if (response.status.Equals("Error")) { return(Request.CreateResponse(HttpStatusCode.BadRequest, (String)response.message)); } Collection <PSObject> taskOutput = (Collection <PSObject>)response.message; tenant = new VeeamTenant(); tenant.uid = taskOutput[0].Properties["Id"].Value.ToString(); tenant.username = taskOutput[0].Properties["Name"].Value.ToString(); tenant.password = taskOutput[0].Properties["Password"].Value.ToString(); if (bool.Parse(taskOutput[0].Properties["LeaseExpirationEnabled"].Value.ToString()) == true) { tenant.leaseExpiration = taskOutput[0].Properties["LeaseExpirationDate"].Value.ToString(); } return(Request.CreateResponse(HttpStatusCode.Created, tenant)); }