in src/VstsDemoBuilder/Services/ExtractorService.cs [1353:1525]
public void GetServiceEndpoints(ProjectConfigurations appConfig)
{
try
{
ServiceEndPoint serviceEndPoint = new ServiceEndPoint(appConfig.EndpointConfig);
Parameters.ServiceEndPoint getServiceEndPoint = serviceEndPoint.GetServiceEndPoints();
if (getServiceEndPoint.count > 0)
{
foreach (Parameters.Value endpoint in getServiceEndPoint.value)
{
switch (endpoint.authorization.scheme)
{
case "OAuth":
case "InstallationToken":
switch (endpoint.type)
{
case "github":
case "GitHub":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
AccessToken = "AccessToken"
};
}
else
{
endpoint.authorization.parameters.AccessToken = endpoint.authorization.parameters.AccessToken ?? "AccessToken";
}
break;
}
break;
case "UsernamePassword":
endpoint.authorization.parameters.username = endpoint.authorization.parameters.username ?? "username";
endpoint.authorization.parameters.password = endpoint.authorization.parameters.password ?? "password";
break;
case "ManagedServiceIdentity":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
tenantId = Guid.NewGuid().ToString()
};
}
else
{
endpoint.authorization.parameters.tenantId = endpoint.authorization.parameters.tenantId ?? Guid.NewGuid().ToString();
}
break;
case "ServicePrincipal":
switch (endpoint.type)
{
case "devCenter":
endpoint.authorization.parameters.servicePrincipalKey = endpoint.authorization.parameters.servicePrincipalKey ?? "P2ssw0rd@123";
break;
case "azurerm":
endpoint.authorization.parameters.url = null;
endpoint.authorization.parameters.servicePrincipalId = endpoint.authorization.parameters.servicePrincipalId ?? Guid.NewGuid().ToString();
endpoint.authorization.parameters.authenticationType = endpoint.authorization.parameters.authenticationType ?? "spnKey";
endpoint.authorization.parameters.tenantId = endpoint.authorization.parameters.tenantId ?? Guid.NewGuid().ToString();
endpoint.authorization.parameters.servicePrincipalKey = endpoint.authorization.parameters.servicePrincipalKey ?? "spnKey";
switch (endpoint.data.scopeLevel)
{
case "ManagementGroup":
endpoint.data.managementGroupId = endpoint.data.managementGroupId ?? "managedgroup";
endpoint.data.managementGroupName = endpoint.data.managementGroupName ?? "groupname";
break;
}
break;
}
break;
case "Certificate":
switch (endpoint.type)
{
case "dockerhost":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters();
endpoint.authorization.parameters.cacert = endpoint.authorization.parameters.cacert ?? "cacert";
endpoint.authorization.parameters.cert = endpoint.authorization.parameters.cert ?? "cert";
endpoint.authorization.parameters.key = endpoint.authorization.parameters.key ?? "key";
}
else
{
endpoint.authorization.parameters.cacert = endpoint.authorization.parameters.cacert ?? "cacert";
endpoint.authorization.parameters.cert = endpoint.authorization.parameters.cert ?? "cert";
endpoint.authorization.parameters.key = endpoint.authorization.parameters.key ?? "key";
}
break;
case "azure":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
certificate = "certificate"
};
}
else
{
endpoint.authorization.parameters.certificate = endpoint.authorization.parameters.certificate ?? "certificate";
}
break;
}
break;
case "Token":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
apitoken = "apitoken"
};
}
else
{
endpoint.authorization.parameters.apitoken = endpoint.authorization.parameters.apitoken ?? "apitoken";
}
break;
case "None":
switch (endpoint.type)
{
case "AzureServiceBus":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
serviceBusConnectionString = "connectionstring"
};
}
else
{
endpoint.authorization.parameters.serviceBusConnectionString = endpoint.authorization.parameters.serviceBusConnectionString ?? "connectionstring";
}
break;
case "externalnugetfeed":
if (endpoint.authorization.parameters == null)
{
endpoint.authorization.parameters = new Parameters.Parameters
{
nugetkey = "nugetkey"
};
}
else
{
endpoint.authorization.parameters.nugetkey = endpoint.authorization.parameters.nugetkey ?? "nugetkey";
}
break;
}
break;
}
string endpointString = JsonConvert.SerializeObject(endpoint);
if (!Directory.Exists(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints"))
{
Directory.CreateDirectory(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints");
File.WriteAllText(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints\\", JsonConvert.SerializeObject(endpoint, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
}
else
{
File.WriteAllText(extractedTemplatePath + appConfig.EndpointConfig.Project + "\\ServiceEndpoints\\" + endpoint.name + ".json", JsonConvert.SerializeObject(endpoint, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }));
}
}
}
else if (!string.IsNullOrEmpty(serviceEndPoint.LastFailureMessage))
{
AddMessage(appConfig.EndpointConfig.Id.ErrorId(), "Error occured while fetchin service endpoints");
}
}
catch (Exception ex)
{
logger.Info(DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + "\t" + ex.Message + "\n" + ex.StackTrace + "\n");
}
}