- Timestamp:
- 01/13/12 16:01:39 (13 years ago)
- Location:
- branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3
- Files:
-
- 7 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Azure/ServiceManagementOperation.cs
r7299 r7326 72 72 } 73 73 74 public static List<AffinityGroup> ListAffinityGroups(string subscriptionId, string thumbprint) { 75 string uri = String.Format(Constants.URIAffinityGroupFormat, subscriptionId); 76 ServiceWebRequest operation = new ServiceWebRequest(thumbprint); 77 XDocument response = operation.Invoke(uri); 78 List<AffinityGroup> result = null; 79 if (response.Root.HasElements) { 80 result = (from s in response.Elements() 81 select new AffinityGroup() { 82 Name = s.Descendants(wa + "Name").Single().Value, 83 Label = Utils.ConvertFromBase64String(s.Descendants(wa + "Label").Single().Value), 84 Description = s.Descendants(wa + "Description").Single().Value, 85 Location = s.Descendants(wa + "Location").Single().Value 86 }).ToList(); 87 } 88 return result; 89 } 90 91 public static List<HostedService> ListHostedServices(string subscriptionId, string thumbprint) { 92 string uri = String.Format(Constants.URIHostedServiceFormat, subscriptionId); 93 ServiceWebRequest operation = new ServiceWebRequest(thumbprint); 94 XDocument response = operation.Invoke(uri); 95 List<HostedService> result = null; 96 if (response.Root.HasElements) { 97 98 result = (from s in response.Elements() 99 select new HostedService() { 100 ServiceName = s.Descendants(wa + "ServiceName").Single().Value, 101 Url = s.Descendants(wa + "Url").Single().Value 102 }).ToList(); 103 } 104 105 if (result != null) 106 return result; 107 else 108 return new List<HostedService>(); 109 } 110 111 public static HostedService GetHostedService(string subscriptionId, string thumbprint, string serviceName) { 112 string uri = String.Format(Constants.URISpecificHostedServiceFormat, subscriptionId, serviceName); 113 ServiceWebRequest operation = new ServiceWebRequest(thumbprint); 114 XDocument response = operation.Invoke(uri); 115 HostedService service = new HostedService(); 116 service.ServiceName = response.Descendants(wa + "ServiceName").Single().Value; 117 service.Url = response.Descendants(wa + "Url").Single().Value; 118 return service; 119 } 120 121 public static HostedService GetHostedServiceDetailed(string subscriptionId, string thumbprint, string serviceName) { 122 string uri = String.Format(Constants.URISpecificHostedServiceFormat + "?embed-detail=true", subscriptionId, serviceName); 123 ServiceWebRequest operation = new ServiceWebRequest(thumbprint); 124 XDocument response = operation.Invoke(uri); 125 HostedService service = new HostedService(); 126 service.ServiceName = response.Descendants(wa + "ServiceName").Single().Value; 127 service.Url = response.Descendants(wa + "Url").First().Value; 128 if (response.Root.Elements(wa + "HostedServiceProperties").Any()) { 129 XElement xHostedServiceProperties = response.Descendants(wa + "HostedServiceProperties").Single(); 130 string loc = string.Empty, affgroup = string.Empty; 131 if (xHostedServiceProperties.HasElements) { 132 string desc = xHostedServiceProperties.Descendants(wa + "Description").Single().Value; 133 if (xHostedServiceProperties.Descendants(wa + "Location").Any()) { 134 loc = xHostedServiceProperties.Descendants(wa + "Location").Single().Value; 135 } else { 136 affgroup = xHostedServiceProperties.Descendants(wa + "AffinityGroup").Single().Value; 137 } 138 string lbl = Utils.ConvertFromBase64String(xHostedServiceProperties.Descendants(wa + "Label").Single().Value); 139 HostedServiceProperties props = new HostedServiceProperties() { 140 Description = desc, 141 Location = loc, 142 AffinityGroup = affgroup, 143 Label = lbl 144 }; 145 service.HostedServiceProperties = props; 146 } 147 } 148 149 if (response.Root.Elements(wa + "Deployments").Any()) { 150 XElement xDeployments = response.Descendants(wa + "Deployments").Single(); 151 if (xDeployments.HasElements) { 152 IEnumerable<Deployment> deps = (from s in xDeployments.Elements() 153 select GetDeploymentFromXml(s)).ToList(); 154 service.Deployments = new List<Deployment>(deps); 155 } else { 156 service.Deployments = new List<Deployment>(); 157 } 158 } 159 160 return service; 161 } 162 163 private static Deployment GetDeploymentFromXml(XElement xDeployment) { 164 Deployment deployment = new Deployment(); 165 deployment.Name = xDeployment.Descendants(wa + "Name").Single().Value; 166 deployment.DeploymentSlot = xDeployment.Descendants(wa + "DeploymentSlot").Single().Value; 167 deployment.PrivateID = xDeployment.Descendants(wa + "PrivateID").Single().Value; 168 deployment.Status = xDeployment.Descendants(wa + "Status").Single().Value; 169 deployment.Label = Utils.ConvertFromBase64String(xDeployment.Descendants(wa + "Label").Single().Value); 170 if (xDeployment.Descendants(wa + "Url").Any()) { 171 deployment.Url = xDeployment.Descendants(wa + "Url").Single().Value; 172 } 173 deployment.Configuration = Utils.ConvertFromBase64String(xDeployment.Descendants(wa + "Configuration").Single().Value); 174 175 XElement xRoleInstanceList = xDeployment.Descendants(wa + "RoleInstanceList").Single(); 176 if (xRoleInstanceList.HasElements) { 177 IEnumerable<RoleInstance> instances = (from s in xRoleInstanceList.Elements() 178 select new RoleInstance() { 179 RoleName = s.Descendants(wa + "RoleName").Single().Value, 180 InstanceName = s.Descendants(wa + "InstanceName").Single().Value, 181 InstanceStatus = s.Descendants(wa + "InstanceStatus").Single().Value 182 }).ToList(); 183 deployment.RoleInstanceList = new List<RoleInstance>(instances); 184 } 185 if (xDeployment.Descendants(wa + "RoleList").Any()) { 186 XElement xRoleList = xDeployment.Descendants(wa + "RoleList").Single(); 187 if (xRoleList.HasElements) { 188 189 IEnumerable<Role> roles = (from s in xRoleList.Elements() 190 select new Role() { 191 RoleName = s.Descendants(wa + "RoleName").Single().Value, 192 OsVersion = s.Descendants(wa + "OsVersion").Single().Value 193 }).ToList(); 194 deployment.RoleList = new List<Role>(roles); 195 } 196 } 197 198 if (xDeployment.Descendants(wa + "UpgradeDomainCount").Any()) { 199 deployment.UpgradeDomainCount = Convert.ToInt32(xDeployment.Descendants(wa + "UpgradeDomainCount").Single().Value); 200 } 201 202 if (xDeployment.Elements("UpgradeStatus").Any()) { 203 XElement xUpgradeStatus = xDeployment.Descendants(wa + "UpgradeStatus").Single(); 204 if (xUpgradeStatus.HasElements) { 205 UpgradeStatus upgradestatus = new UpgradeStatus() { 206 UpgradeType = xUpgradeStatus.Descendants(wa + "RoleName").Single().Value, 207 CurrentUpgradeDomain = Convert.ToInt32(xUpgradeStatus.Descendants(wa + "RoleName").Single().Value), 208 CurrentUpgradeDomainState = xUpgradeStatus.Descendants(wa + "RoleName").Single().Value 209 }; 210 deployment.UpgradeStatus = upgradestatus; 211 } 212 } 213 return deployment; 214 } 215 216 217 74 218 #endregion 75 219 -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Azure/ServiceWebRequest.cs
r7299 r7326 165 165 catch (Exception e) { 166 166 if (e is CryptographicException) 167 Debug.WriteLine("Error: The sotre is unreadable.");167 throw new SystemException("Error: The certificate store is unreadable."); 168 168 else if (e is SecurityException) 169 Debug.WriteLine("Error: You don't have the required permission.");169 throw new SystemException("Error: You don't have the required permission."); 170 170 else if (e is ArgumentException) 171 Debug.WriteLine("Error: Invalid values in the store.");171 throw new SystemException("Error: Invalid values in the certificate store."); 172 172 else 173 throw ;173 throw new SystemException(e.Message, e); 174 174 } 175 175 finally { -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/CloudManagerClient.cs
r7324 r7326 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System; 2 23 using HeuristicLab.Clients.Hive.CloudManager.Azure; 3 24 using HeuristicLab.Clients.Hive.CloudManager.Model; … … 63 84 try { 64 85 IItemList<Subscription> subs = new ItemList<Subscription>(Subscriptions); 65 // TODO ... 86 foreach (Subscription subscription in subs) { 87 if (subscription.DiscoverServices) { 88 //Discover 89 } 90 } 66 91 } 67 92 catch { -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/HeuristicLab.Clients.Hive.CloudManager-3.3.csproj
r7324 r7326 61 61 <Compile Include="CloudManagerClient.cs" /> 62 62 <Compile Include="MenuItems\CloudManagerMenuItem.cs" /> 63 <Compile Include="Model\AffinityGroup.cs" /> 64 <Compile Include="Model\Deployment.cs" /> 65 <Compile Include="Model\HostedService.cs" /> 66 <Compile Include="Model\HostedServiceProperties.cs" /> 67 <Compile Include="Model\Role.cs" /> 68 <Compile Include="Model\RoleInstance.cs" /> 63 69 <Compile Include="Model\Subscription.cs" /> 70 <Compile Include="Model\UpgradeStatus.cs" /> 64 71 <Compile Include="Plugin.cs" /> 65 72 <Compile Include="Properties\AssemblyInfo.cs" /> -
branches/HeuristicLab.Hive.Azure/HeuristicLab.Clients.Hive.CloudManager/3.3/Model/Subscription.cs
r7299 r7326 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System; 2 23 using System.Text; 3 24 using HeuristicLab.Common;
Note: See TracChangeset
for help on using the changeset viewer.