Sommario

Introduzione:

Prerequisiti

Requisiti

Componenti usati

Premesse

Problema

Risoluzione

Introduzione:

Questo documento descrive come risolvere i problemi relativi all'integrazione di Google Cloud con CloudCenter Manager (CCM) versione 4.8.0/4.7.x .

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Interfaccia Linux

- Ambienti di macchine virtuali

- Account Google Cloud

Componenti usati

Le informazioni di questo documento si basano sulle seguenti versioni software:

- CloudCenter versione 4.6.x - 4.8.x

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

Dopo aver aggiunto correttamente GCE orchestrator (CCO) a CCM e aver provato a testare l'ambiente distribuendo un'applicazione che include la selezione del tipo di istanza e della zona, viene visualizzato un messaggio di errore durante il tentativo di selezionare il progetto, come mostrato nell'immagine:

Problema

Nei log di CCM osmosix è possibile trovare questo errore:

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)

Tuttavia, se si passa ai registri CCO osmosix, si ottiene un'immagine chiara.

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"

Risoluzione

Queste API devono essere abilitate affinché il Cloud Center funzioni correttamente con GCE:

- API di Google Compute Engine

- API di Google Cloud Resource Manager

Per attivarlo:

1. Nella console GCE e passare al dashboard API, come mostrato nell'immagine:

2. Alla fine della pagina vengono elencate tutte le API abilitate. Molto probabilmente l'API di Google Compute Engine è già abilitata, se non abilitata, come mostrato nell'immagine:

3. Tuttavia, GCE non inserisce direttamente l'API di gestione risorse nella pagina, quindi è necessario ricercarla. A tale scopo, selezionare l'opzione enable API nella parte superiore della pagina e il reindirizzamento alla libreria API.

4. Come mostrato nell'immagine, cercare Google Cloud Resource Manager API , selezionarlo e abilitarlo.

5. Per riflettere queste modifiche, riavviare il computer CCO e provare a distribuire nuovamente l'app.