Contenido

Introducción:

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Problema

Resolución

Introducción:

Este documento describe cómo resolver problemas de integración de Google Cloud con CloudCenter Manager (CCM) versión 4.8.0/4.7.x .

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Interfaz Linux

- Entornos de máquinas virtuales

- cuenta en la nube de Google

Componentes Utilizados

La información que contiene este documento se basa en estas versiones de software:

- CloudCenter versión 4.6.x a 4.8.x

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Antecedentes

Después de agregar correctamente el orquestador GCE (CCO) a CCM e intentar probar el entorno mediante la implementación de una aplicación que incluya la selección del tipo de instancia y la zona, se muestra un mensaje de error al intentar seleccionar el proyecto como se muestra en la imagen:

Problema

En los registros osmosix de CCM, puede encontrar este error:

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:45,991 INFO  impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6]  - cloud property task is invoked

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,006 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-6]  - cloud data is not null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,006 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-6]  - got the region end point as null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,011 INFO  impl.CloudPropertiesServiceImpl [asyncOperationExecutor-7]  - cloud property task is invoked

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,014 INFO  impl.CloudPropertiesServiceImpl [asyncOperationExecutor-8]  - cloud property task is invoked

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,024 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-7]  - cloud data is not null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,024 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-7]  - got the region end point as null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,032 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-8]  - cloud data is not null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,032 INFO  impl.CloudManagementServiceImpl [asyncOperationExecutor-8]  - got the region end point as null

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,765 ERROR impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6]  - Failed to getCloudPropertiesFromGateway from gateway for propertyType : Project

VENDOR_ID::1::USER_ID::2::2017-05-29 04:11:46,765 ERROR impl.CloudPropertiesServiceImpl [asyncOperationExecutor-6]  - 500 Internal Server Error

org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error

at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)

at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641)

at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597)

at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)

at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:357)

at com.osmosix.commons.util.AjaxUtil.postJson(AjaxUtil.java:117)

at com.osmosix.mgmt.cloud.impl.CloudPropertiesServiceImpl.getCloudPropertiesFromGateway(CloudPropertiesServiceImpl.java:365)

at com.osmosix.mgmt.cloud.impl.CloudPropertiesServiceImpl$CloudPropertyTask.run(CloudPropertiesServiceImpl.java:461)

at com.osmosix.commons.operation.impl.AsyncOperationServiceImpl$2.run(AsyncOperationServiceImpl.java:134)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:748)

Sin embargo, si va a los registros de osmosix de CCO, obtendrá una imagen clara.

2017-05-29 04:28:00,425 INFO  job.JobServiceController [http-apr-8443-exec-3]  - processing validateCloudAccount request...

2017-05-29 04:28:00,632 ERROR properties.CloudPropertiesController [http-apr-8443-exec-6]  - com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden

{

"code" : 403,

"errors" : [ {

"domain" : "global",

"message" : "Google Cloud Resource Manager API has not been used in project credible-spark-166514 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=credible-spark-166514 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",

"reason" : "forbidden"

} ],

"message" : "Google Cloud Resource Manager API has not been used in project credible-spark-166514 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudresourcemanager.googleapis.com/overview?project=credible-spark-166514 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",

"status" : "PERMISSION_DENIED"

Resolución

Estas API deben habilitarse para que el Cloud Center funcione correctamente con el GCE:

- API de Google Compute Engine

- API del administrador de recursos de la nube de Google

Para habilitarlo:

1. En la consola GCE y navegue hasta el panel API, como se muestra en la imagen:

2. Al final de la página , se enumeran todas las API habilitadas y lo más probable es que encuentre que la API de Google Compute Engine ya está habilitada, si no la activa, como se muestra en la imagen:

3. Sin embargo, GCE no pone la API del administrador de recursos directamente en la página, por lo que debe buscarla. Para ello, seleccione la opción enable API de la parte superior de la página y le redirigirá a la biblioteca de API.

4. Como se muestra en la imagen, busque Google Cloud Resource Manager API , selecciónela y actívela.

5. Para reflejar estos cambios, reinicie la máquina CCO y después intente implementar la aplicación una vez más.