Skip to content
Snippets Groups Projects
Commit 0dc61ba8 authored by xiaohua guan's avatar xiaohua guan Committed by Yas Naoi
Browse files

Issue #3221005 by Xiaohua Guan, yas: Add Cloud Orchestrator cloud service...

Issue #3221005 by Xiaohua Guan, yas: Add Cloud Orchestrator cloud service provider (QueueWorker) (Convert payload) (VMware entities)
parent 18f9b17c
No related branches found
No related tags found
No related merge requests found
......@@ -317,3 +317,37 @@ function cloud_cluster_update_9010(): void {
drupal_flush_all_caches();
}
/**
* Add cloud_cluster_name and cloud_cluster_worker_name to vmware_* entities.
*/
function cloud_cluster_update_9011(): void {
$definition_update_manager = \Drupal::entityDefinitionUpdateManager();
$fields = [];
$fields['cloud_cluster_name'] = BaseFieldDefinition::create('string')
->setLabel(t('Cloud Orchestrator Name'))
->setDescription(t('The name of cloud orchestrator.'));
$fields['cloud_cluster_worker_name'] = BaseFieldDefinition::create('string')
->setLabel(t('Cloud Orchestrator Worker Name'))
->setDescription(t('The name of cloud orchestrator worker.'));
$entity_type_definitions = \Drupal::entityTypeManager()->getDefinitions();
foreach ($entity_type_definitions ?: [] as $entity_type_key => $entity_type_definition) {
if (!preg_match('/^vmware_[a-z_]+$/', $entity_type_key)) {
continue;
}
foreach ($fields as $name => $field) {
$definition_update_manager->installFieldStorageDefinition(
$name,
$entity_type_key,
'vmware',
$field
);
}
}
drupal_flush_all_caches();
}
......@@ -294,7 +294,8 @@ function cloud_cluster_rest_resource_alter(array &$definitions): void {
* Implements hook_entity_base_field_info().
*/
function cloud_cluster_entity_base_field_info(EntityTypeInterface $entity_type): array {
if (!preg_match('/^aws_cloud_[a-z_]+$|^k8s_[a-z_]+$|^cloud_config$/', $entity_type->id())) {
$regex = implode('_[a-z_]+$|^', cloud_cluster_get_supported_entity_types());
if (!preg_match("/^$regex$/", $entity_type->id())) {
return [];
}
......@@ -314,7 +315,8 @@ function cloud_cluster_entity_base_field_info(EntityTypeInterface $entity_type):
* Implements hook_views_query_alter().
*/
function cloud_cluster_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
if (!preg_match('/^aws_cloud_[a-z_]+$|^k8s_[a-z_]+$|^cloud_config$/', $view->id())) {
$regex = implode('_[a-z_]+$|^', cloud_cluster_get_supported_entity_types());
if (!preg_match("/^$regex$/", $view->id())) {
return;
}
......@@ -372,3 +374,18 @@ function cloud_cluster_menu_local_tasks_alter(&$data, $route_name): void {
}
}
/**
* Get supported entity types.
*
* @return string
* The supported entity types.
*/
function cloud_cluster_get_supported_entity_types(): string {
return [
'aws_cloud',
'k8s',
'vmware',
'cloud_config',
];
}
......@@ -96,16 +96,11 @@ class CloudClusterSyncResourcesQueueWorker extends QueueWorkerBase implements Co
$cloud_cluster_worker_name = $data['cloud_cluster_worker_name'] ?? '';
$cloud_cluster_name = $data['cloud_cluster_name'] ?? '';
if (!preg_match('/^aws_cloud_[a-z_]+$|^k8s_[a-z_]+$|^cloud_config$/', $entity_type)) {
$regex = implode('_[a-z_]+$|^', cloud_cluster_get_supported_entity_types());
if (!preg_match("/^$regex$/", $entity_type)) {
return;
}
$this->logger->debug($cloud_context);
$this->logger->debug($entity_type);
$this->logger->debug(json_encode($resource_jsons));
$this->logger->debug($cloud_cluster_worker_name);
$this->logger->debug($cloud_cluster_name);
$definition = $this->entityTypeManager->getDefinition($entity_type);
$label_key = $definition->getKey('label');
$entities = $this->entityTypeManager
......
......@@ -16,7 +16,8 @@ class CloudClusterRouteSubscriber extends RouteSubscriberBase {
protected function alterRoutes(RouteCollection $collection): void {
$collection_to_add = new RouteCollection();
foreach ($collection ?: [] as $name => $route) {
if (!preg_match('/^view\.aws_cloud_[a-z_]+\.[a-z]+$|^view\.k8s_[a-z_]+\.[a-z]+$|^view\.cloud_config.[a-z]+$/', $name)) {
$regex = implode('_[a-z_]+\.[a-z]+$|^view\.', cloud_cluster_get_supported_entity_types());
if (!preg_match('/^view\.' . $regex . '\.[a-z]+$/', $name)) {
continue;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment