public ServiceConfiguration(int instanceCount,string StorageAccConnectionString,string StsCertificateThumbprint,string ManagementCertificateThumbprint,string HostUrl, bool InsecureAccess,string ServiceName,string SID)
        {
            serviceName = "GenericWorkerRole";
            osFamily = 2;
            osVersion = "*";

            Role = new Role();

            Role.name = "Cloud.WebRole";

            Role.Instances.count = instanceCount;
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.ConnectionString", StorageAccConnectionString));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.STS.Certificate.Thumbprint", StsCertificateThumbprint));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.STS.URL", "http://" + HostUrl + "/STS/UsernamePassword.svc"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.SecuredJobManagementSiteURL", "http://my.genericworker.net/JobManagement/"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", StorageAccConnectionString));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.ParallelTasks","1"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled", "True"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername", "emicloud"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword", StsCertificateThumbprint));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration", "2013-12-31T23:59:59.0000000+01:00"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled", "True"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.WCF.SharedMachineSymmetricKey", "cHz9DpC42rR+oeWI1y6YqCNcFJFieKjU/O3tPcCHDfE="));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.SerializedGlobalSecurityPolicy","<ClaimRequirementsPolicy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/CreateActivity\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityDocuments\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityStatuses\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/TerminateActivities\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetFactoryAttributesDocument\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>  </Policy>  <Policy Operation=\"http://tempuri.org/IScalingService/ListDeployments\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://tempuri.org/IScalingService/UpdateDeployment\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetJobs\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetAllJobs\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetHierarchy\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetRoot\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetJobsByGroup\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://tempuri.org/INotificationService/CreateSubscription\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>  </Policy>  <Policy Operation=\"http://tempuri.org/INotificationService/CreateSubscriptionForStatuses\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>  </Policy>  <Policy Operation=\"http://tempuri.org/INotificationService/CreateSubscriptionForGroupStatuses\">    <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>  </Policy>  <Policy Operation=\"http://tempuri.org/INotificationService/Unsubscribe\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/CancelGroup\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/CancelHierarchy\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/RemoveTerminatedJobs\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy>  <Policy Operation=\"http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetNumberOfJobs\">    <Any>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Researcher</Claim>      <Claim Type=\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\">VENUS-C Compute Administrator</Claim>    </Any>  </Policy></ClaimRequirementsPolicy>"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.STS.Azure.ConnectionString", StorageAccConnectionString));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.Security.AllowInsecureAccess", InsecureAccess.ToString()));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.IsAccountingOn", "True"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.IsWebRole", "True"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.JobEntriesPerPage","100"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.GenericWorker.URL", "http://" + HostUrl + "/JobSubmission/SecureService.svc"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.ScalingService.URL", "http://" + HostUrl + "/ScalingService/SecureService.svc"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.NotificationService.URL", "http://" + HostUrl + "/NotificationService/SecureService.svc"));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.Azure.ServiceName",ServiceName));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.Azure.SubscriptionId", SID));
            Role.ConfigurationSettings.Add(new Setting("Microsoft.EMIC.Cloud.Azure.MgmtCertThumbprint", ManagementCertificateThumbprint));

            Role.Certificates.Add(new Certificate("Microsoft.EMIC.Cloud.SSLCert", StsCertificateThumbprint,"sha1"));
            Role.Certificates.Add(new Certificate("Microsoft.EMIC.Cloud.MgmtCert", ManagementCertificateThumbprint,"sha1"));
            Role.Certificates.Add(new Certificate("Microsoft.EMIC.Cloud.STSCert", StsCertificateThumbprint,"sha1"));
            Role.Certificates.Add(new Certificate("Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption", StsCertificateThumbprint,"sha1"));
        }
 public ServiceConfiguration()
 {
     Role = new Role();
 }