private string TestAdd(string adminUrl, string rolename, string token_id) { List<Role> rolelist = new List<Role>(); Role newrole = new Role(); string ret = String.Empty; try { rolelist = Role.List(adminUrl, token_id); ret += "List of roles before Add:" + Environment.NewLine; foreach (Role r in rolelist) ret += r.name + " " + r.id + Environment.NewLine; try { newrole = Role.Add(adminUrl, rolename, token_id); ret += Environment.NewLine + "Added role: TestRole1" + Environment.NewLine + Environment.NewLine; try { rolelist = Role.List(adminUrl, token_id); ret += "List of roles after Add:" + Environment.NewLine; foreach (Role r in rolelist) ret += r.name + " " + r.id + Environment.NewLine; try { Role.Delete(adminUrl, newrole.id, token_id); } catch (Exception x) { return "Post delete failed: " + x.Message; } } catch (Exception x) { return x.Message; } } catch (Exception x) { try { if (rolename == "") return x.Message; else Role.Delete(adminUrl, newrole.id, token_id); } catch (Exception x2) { return "Catch delete failed: " + x2.Message; } return x.Message; } } catch (Exception x) { return x.Message; } return ret; }
private string TestDelete(string adminUrl, string token_id) { List<Role> rolelist = new List<Role>(); Role testrole = new Role(); string ret = String.Empty; try { testrole = Role.Add(adminUrl, "TestRole1", token_id); try { rolelist = Role.List(adminUrl, token_id); ret += "List of roles before Delete:" + Environment.NewLine; foreach (Role r in rolelist) ret += r.name + " " + r.id + Environment.NewLine; ret += Environment.NewLine + "Attempting to delete TestRole1..." + Environment.NewLine + Environment.NewLine; try { Role.Delete(adminUrl, testrole.id, token_id); try { rolelist = Role.List(adminUrl, token_id); ret += "List of roles after Delete: " + Environment.NewLine; foreach (Role r in rolelist) ret += r.name + " " + r.id + Environment.NewLine; } catch (Exception x) { return "After List failed: " + x.Message; } } catch (Exception x) { return x.Message; } } catch (Exception x) { return "Before List failed: " + x.Message; } } catch (Exception x) { return x.Message; } return ret; }
public static Role Parse(string server_return) { Role return_role = new Role(); try { JObject oServerReturn = JObject.Parse(server_return); String role_id = oServerReturn["id"].ToString(); String role_name = oServerReturn["name"].ToString(); return_role.id = role_id; return_role.name = role_name; return return_role; } catch { throw new BadJson("Role Parse Json command contained incorrect fields."); } }
public static List<Role> List(string url, string admin_token) { string ret = String.Empty; List<Role> RoleList = new List<Role>(); try { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url + "/v2.0/OS-KSADM/roles"); webRequest.Method = "GET"; webRequest.ServicePoint.Expect100Continue = false; webRequest.Headers.Add("X-Auth-Token", admin_token); webRequest.Timeout = 2000; HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); Stream resStream = resp.GetResponseStream(); StreamReader reader = new StreamReader(resStream); ret = reader.ReadToEnd(); } catch (Exception x) { throw OpenStackObject.Parse_Error(x); } try { JObject root = JObject.Parse(ret); JArray ServerReturn = (JArray)root["roles"]; if (ServerReturn != null) { for (int i = 0; i < ServerReturn.Count; i++) { Role newRole = new Role(); try { newRole = Role.Parse(ServerReturn[i].ToString()); } catch (Exception x) { throw x; } RoleList.Add(newRole); } } } catch (Exception x) { throw OpenStackObject.Parse_Error(x); } return RoleList; }
//==============================================================================// // // List Roles for a User on a Tenant // // //==============================================================================// public static List<Role> List_Roles(string url, string UserId, string TenantId, string AdminId) { string List_User_Roles_url = url + "/v2.0/tenants/" + TenantId + "/users/" + UserId + "/roles"; string ret = string.Empty; try { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(List_User_Roles_url); webRequest.Method = "GET"; webRequest.ServicePoint.Expect100Continue = false; webRequest.Headers.Add("X-Auth-Token", AdminId); webRequest.Timeout = 2000; HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); Stream resStream = resp.GetResponseStream(); StreamReader reader = new StreamReader(resStream); ret = reader.ReadToEnd(); try { JObject oServerReturn = JObject.Parse(ret); JArray rolesArr = (JArray)oServerReturn["roles"]; int counter; List<Role> user_role_list = new List<Role>(); for (counter = 0; counter < rolesArr.Count(); counter++) { Role user_role = new Role(); user_role.name = rolesArr[counter]["name"].ToString(); user_role.id = rolesArr[counter]["id"].ToString(); user_role_list.Add(user_role); } return (user_role_list); } catch { throw new BadJson("Syntax of argument was incorrect"); } // return ret; } catch (Exception x) { throw OpenStackObject.Parse_Error(x); } }
//==============================================================================// // // Add role to user // // //==============================================================================// public static Role AddRoleToUser(string url, string UserId, string TenantId, string RoleId, string Admin_Token) { string Add_Role_url = url + "/v2.0/tenants/" + TenantId + "/users/" + UserId + "/roles/OS-KSADM/" + RoleId; string ret = string.Empty; Role user_role = new Role(); try { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Add_Role_url); webRequest.Headers.Add("X-Auth-Token", Admin_Token); webRequest.Method = "Put"; webRequest.ServicePoint.Expect100Continue = false; webRequest.Timeout = 2000; webRequest.ContentType = "application/json"; HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); Stream resStream = resp.GetResponseStream(); StreamReader reader = new StreamReader(resStream); ret = reader.ReadToEnd(); try { JObject oServerReturn = JObject.Parse(ret); String roleStr = oServerReturn["role"].ToString(); JObject oUserString = JObject.Parse(roleStr); String role_name = oUserString["name"].ToString(); String role_id = oUserString["id"].ToString(); user_role.name = role_name; user_role.id = role_id; return user_role; } catch { throw new BadJson("Syntax of argument was incorrect"); } } catch (Exception x) { throw OpenStackObject.Parse_Error(x); } }
public static Role Parse(string server_return) { Role return_role = new Role(); JObject oServerReturn = JObject.Parse(server_return); String roleStr = oServerReturn["role"].ToString(); JObject oRoleStr = JObject.Parse(roleStr); String role_id = oRoleStr["id"].ToString(); String role_name = oRoleStr["name"].ToString(); return_role.id = role_id; return_role.name = role_name; return return_role; }
public static Role Get(string url, string role_id, string admin_token) { string ret = string.Empty; Role return_role = new Role(); try { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url + "/v2.0/OS-KSADM/roles/" + role_id); webRequest.Method = "GET"; webRequest.ServicePoint.Expect100Continue = false; webRequest.Headers.Add("X-Auth-Token", admin_token); webRequest.Timeout = 2000; HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); Stream resStream = resp.GetResponseStream(); StreamReader reader = new StreamReader(resStream); ret = reader.ReadToEnd(); return_role = Parse(ret); return return_role; } catch (Exception x) { return_role.error = x.ToString(); return return_role; } }
public static Role Add(string url, string name, string admin_token) { Role return_role = new Role(); string ret = string.Empty; StreamWriter requestWriter; string postData = "{\"role\": {\"name\":\"" + name + "\"}}"; try { HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url + "/v2.0/OS-KSADM/roles"); webRequest.Headers.Add("X-Auth-Token", admin_token); webRequest.Method = "POST"; webRequest.ServicePoint.Expect100Continue = false; webRequest.Timeout = 2000; webRequest.ContentType = "application/json"; requestWriter = new StreamWriter(webRequest.GetRequestStream()); requestWriter.Write(postData); requestWriter.Close(); HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse(); Stream resStream = resp.GetResponseStream(); StreamReader reader = new StreamReader(resStream); ret = reader.ReadToEnd(); return_role = Parse(ret); return return_role; } catch (Exception x) { return_role.error = x.ToString(); return return_role; } }