in providers/ibm/ibm_certificate_manager.go [74:174]
func (g *CMGenerator) InitResources() error {
bmxConfig := &bluemix.Config{
BluemixAPIKey: os.Getenv("IC_API_KEY"),
}
sess, err := session.New(bmxConfig)
if err != nil {
return err
}
var cisInstance string
var cisID string
cis := g.Args["cis"]
if cis != nil {
cisInstance = cis.(string)
}
// Client creation
catalogClient, err := catalog.New(sess)
if err != nil {
return err
}
controllerClient, err := controllerv2.New(sess)
if err != nil {
return err
}
certManagementClient, err := certificatemanager.New(sess)
if err != nil {
return err
}
// Get ServiceID of certificate manager service
serviceID, err := catalogClient.ResourceCatalog().FindByName("cloudcerts", true)
if err != nil {
return err
}
serviceID2, err := catalogClient.ResourceCatalog().FindByName("internet-svcs", true)
if err != nil {
return err
}
query := controllerv2.ServiceInstanceQuery{
ServiceID: serviceID[0].ID,
}
query2 := controllerv2.ServiceInstanceQuery{
ServiceID: serviceID2[0].ID,
}
// Get all Certificate manager instances
cmInstances, err := controllerClient.ResourceServiceInstanceV2().ListInstances(query)
if err != nil {
return err
}
// Get all CIS instances
cisInstances, err := controllerClient.ResourceServiceInstanceV2().ListInstances(query2)
if err != nil {
return err
}
for _, cis := range cisInstances {
if cisInstance == cis.Name {
cisID = cis.Guid
}
}
// Get all certificates associated with a certificate manager instance
for _, cmInstance := range cmInstances {
g.Resources = append(g.Resources, g.loadCM(cmInstance.ID, cmInstance.Guid))
// For each instance get associated certificates
certificateList, err := certManagementClient.Certificate().ListCertificates(cmInstance.ID)
if err != nil {
return err
}
for _, cert := range certificateList {
// Get certificate info
certificatedata, err := certManagementClient.Certificate().GetCertData(cert.ID)
if err != nil {
return err
}
var dependsOn []string
dependsOn = append(dependsOn,
"ibm_resource_instance."+terraformutils.TfSanitize(cmInstance.Guid))
if certificatedata.Imported {
g.Resources = append(g.Resources, g.loadImportedCM(cert.ID, cert.ID, cisID, dependsOn))
} else {
g.Resources = append(g.Resources, g.loadOrderedCM(cert.ID, cert.ID, cisID, dependsOn))
}
}
}
return nil
}