cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/k8s.install

modules/cloud_service_providers/k8s/k8s.install
<?php

/**
 * @file
 * Install and updates for k8s.
 */

use Drupal\Core\Field\BaseFieldDefinition;

/**
 * Implements hook_uninstall().
 */
function k8s_uninstall() {

  $entity_type_manager = \Drupal::entityTypeManager();

  // Delete all k8s cloud service providers.
  $entities = $entity_type_manager
    ->getStorage('cloud_config')
    ->loadByProperties(
      [
        'type' => 'k8s',
      ]
    );
  $entity_type_manager->getStorage('cloud_config')->delete($entities);

  // Delete the k8s entity type.
  $content_type = $entity_type_manager
    ->getStorage('cloud_config_type')
    ->load('k8s');
  $content_type->delete();

  // Rebuild caches.
  drupal_flush_all_caches();
}

/**
 * Add entity type k8s_node and view k8s_node.
 */
function k8s_update_8201() {
  // Add entity type k8s_node.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_node');
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_node.
  $files = [
    'views.view.k8s_node.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_node and view k8s_node.
 */
function k8s_update_8202() {
  // Add entity type k8s_node.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_node');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);
  // Add view k8s_node.
  $files = [
    'views.view.k8s_node.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_namespace and view k8s_namespace.
 */
function k8s_update_8203() {
  // Add entity type k8s_namespace.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_namespace');
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_namespace.
  $files = [
    'views.view.k8s_namespace.yml',
    'system.action.k8s_namespace_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_pod and view k8s_pod.
 */
function k8s_update_8204() {
  // Add entity type k8s_pod.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_pod');
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_pod.
  $files = [
    'views.view.k8s_pod.yml',
    'system.action.k8s_pod_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add namespace filter to view k8s_pod.
 */
function k8s_update_8205() {
  // Update view k8s_pod.
  $files = [
    'views.view.k8s_pod.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_deployment and view k8s_deployment.
 */
function k8s_update_8206() {
  // Add entity type k8s_deployment.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_deployment');
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_deployment.
  $files = [
    'views.view.k8s_deployment.yml',
    'system.action.k8s_deployment_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_service and view k8s_service.
 */
function k8s_update_8207() {
  // Add entity type k8s_service.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_service');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_service.
  $files = [
    'views.view.k8s_service.yml',
    'system.action.k8s_service_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Update view k8s_pod.
 */
function k8s_update_8208() {
  // Update view k8s_pod.
  $files = [
    'views.view.k8s_pod.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_cron_job and view k8s_cron_job.
 */
function k8s_update_8209() {
  // Add entity type k8s_cron_job.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_cron_job');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_cron_job.
  $files = [
    'views.view.k8s_cron_job.yml',
    'system.action.k8s_cron_job_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_job and view k8s_job.
 */
function k8s_update_8210() {
  // Add entity type k8s_job.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_job');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_job.
  $files = [
    'views.view.k8s_job.yml',
    'system.action.k8s_job_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Update both field_api_server and field_tokenn.
 */
function k8s_update_8212() {
  // Update fields.
  $files = [
    'field.field.cloud_config.k8s.field_api_server.yml',
    'field.field.cloud_config.k8s.field_token.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_resource_quota and view k8s_resource_quota.
 */
function k8s_update_8213() {
  // Add entity type k8s_resource_quota.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_resource_quota');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_resource_quota.
  $files = [
    'views.view.k8s_resource_quota.yml',
    'system.action.k8s_resource_quota_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add fields about metrics to k8s_node.
 */
function k8s_update_8214() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  $fields = [];
  $fields['cpu_capacity'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Capacity)'))
    ->setDescription(t('The cpu capacity of the node.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['cpu_request'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Request)'))
    ->setDescription(t('The requested cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['cpu_limit'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Limit)'))
    ->setDescription(t('The limited cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['memory_capacity'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Capacity)'))
    ->setDescription(t('The memory capacity of the node.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  $fields['memory_request'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Request)'))
    ->setDescription(t('The requested memory.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  $fields['memory_limit'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Limit)'))
    ->setDescription(t('The limited memory.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  $fields['pods_capacity'] = BaseFieldDefinition::create('integer')
    ->setLabel(t('Pods (Capacity)'))
    ->setDescription(t('The pods capacity of the node.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['pods_allocation'] = BaseFieldDefinition::create('integer')
    ->setLabel(t('Pods (Allocation)'))
    ->setDescription(t('The pods allocated.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  foreach ($fields as $name => $field) {
    $definition_update_manager->installFieldStorageDefinition(
      $name,
      'k8s_node',
      'k8s',
      $field
    );
  }

  // Update view k8s_node.
  $files = [
    'views.view.k8s_node.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');

  drupal_flush_all_caches();

  // Update k8s nodes.
  $config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
    ->loadConfigEntities('k8s');
  $k8s_service = \Drupal::service('k8s');
  foreach ($config_entities as $config_entity) {
    $k8s_service->setCloudContext($config_entity->getCloudContext());
    $k8s_service->updateNodesWithoutBatch();
  }
}

/**
 * Add fields about metrics to k8s_pod.
 */
function k8s_update_8215() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  $fields = [];
  $fields['cpu_request'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Request)'))
    ->setDescription(t('The requested cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['cpu_limit'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Limit)'))
    ->setDescription(t('The limited cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['cpu_usage'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Usage)'))
    ->setDescription(t('The requested cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['memory_request'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Request)'))
    ->setDescription(t('The requested memory.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  $fields['memory_limit'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Limit)'))
    ->setDescription(t('The limited memory.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  $fields['memory_usage'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Usage)'))
    ->setDescription(t('The memory usage.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  foreach ($fields as $name => $field) {
    $definition_update_manager->installFieldStorageDefinition(
      $name,
      'k8s_pod',
      'k8s',
      $field
    );
  }

  // Update view k8s_pod.
  $files = [
    'views.view.k8s_pod.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');

  drupal_flush_all_caches();

  // Update k8s pods.
  $config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
    ->loadConfigEntities('k8s');
  $k8s_service = \Drupal::service('k8s');
  foreach ($config_entities as $config_entity) {
    $k8s_service->setCloudContext($config_entity->getCloudContext());
    $k8s_service->updatePodsWithoutBatch();
  }
}

/**
 * Add detail field to k8s_node and k8s_namespace.
 */
function k8s_update_8216() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  $field_detail = BaseFieldDefinition::create('string_long')
    ->setLabel(t('Detail'))
    ->setDescription(t('Node detail.'))
    ->setRequired(TRUE)
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'pre_string_formatter',
      'weight' => -5,
    ]);

  $definition_update_manager->installFieldStorageDefinition(
    'detail',
    'k8s_node',
    'k8s',
    $field_detail
  );

  $field_detail = BaseFieldDefinition::create('string_long')
    ->setLabel(t('Detail'))
    ->setDescription(t('Namespace detail.'))
    ->setRequired(TRUE)
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'pre_string_formatter',
      'weight' => -5,
    ]);

  $definition_update_manager->installFieldStorageDefinition(
    'detail',
    'k8s_namespace',
    'k8s',
    $field_detail
  );

  drupal_flush_all_caches();

  // Update k8s namespace.
  $config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
    ->loadConfigEntities('k8s');
  $k8s_service = \Drupal::service('k8s');
  foreach ($config_entities as $config_entity) {
    $k8s_service->setCloudContext($config_entity->getCloudContext());
    $k8s_service->updateNodesWithoutBatch();
    $k8s_service->updateNamespacesWithoutBatch();
  }
}

/**
 * Add fields about metrics to k8s_node.
 */
function k8s_update_8217() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  $fields = [];
  $fields['cpu_usage'] = BaseFieldDefinition::create('float')
    ->setLabel(t('CPU (Usage)'))
    ->setDescription(t('The requested cpu.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'string',
      'weight' => -5,
    ]);

  $fields['memory_usage'] = BaseFieldDefinition::create('float')
    ->setLabel(t('Memory (Usage)'))
    ->setDescription(t('The memory usage.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'memory_formatter',
      'weight' => -5,
    ]);

  foreach ($fields as $name => $field) {
    $definition_update_manager->installFieldStorageDefinition(
      $name,
      'k8s_node',
      'k8s',
      $field
    );
  }

  // Update view k8s_node.
  $files = [
    'views.view.k8s_node.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');

  drupal_flush_all_caches();

  // Update k8s pods.
  $config_entities = \Drupal::service('plugin.manager.cloud_config_plugin')
    ->loadConfigEntities('k8s');
  $k8s_service = \Drupal::service('k8s');
  foreach ($config_entities as $config_entity) {
    $k8s_service->setCloudContext($config_entity->getCloudContext());
    $k8s_service->updatePodsWithoutBatch();
  }
}

/**
 * Install k8s cloud server template.
 */
function k8s_update_8218() {
  $files = [
    'cloud.cloud_server_template_type.k8s.yml',
    'field.storage.cloud_server_template.field_detail.yml',
    'field.storage.cloud_server_template.field_namespace.yml',
    'field.storage.cloud_server_template.field_object.yml',
    'core.entity_form_display.cloud_server_template.k8s.default.yml',
    'core.entity_view_display.cloud_server_template.k8s.default.yml',
    'field.field.cloud_server_template.k8s.field_detail.yml',
    'field.field.cloud_server_template.k8s.field_namespace.yml',
    'field.field.cloud_server_template.k8s.field_object.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add configuration k8s_js_refresh_interval and update view k8s_profile.
 */
function k8s_update_8219() {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory->getEditable('k8s.settings');
  $config->set('k8s_js_refresh_interval', 10);
  $config->save();

  $files = [
    'views.view.k8s_profile.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add field creation_yaml to k8s_pod and k8s_deployment.
 */
function k8s_update_8220() {
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();

  $field = BaseFieldDefinition::create('string_long')
    ->setLabel(t('Creation YAML'))
    ->setDescription(t('The YAML content was used to create the entity.'))
    ->setDisplayOptions('view', [
      'label' => 'inline',
      'type' => 'pre_string_formatter',
      'weight' => -5,
    ]);

  $entity_types = [
    'k8s_pod',
    'k8s_deployment',
  ];
  foreach ($entity_types as $entity_type) {
    $definition_update_manager->installFieldStorageDefinition(
      'creation_yaml',
      $entity_type,
      'k8s',
      $field
    );
  }
}

/**
 * Change sort setting of views.
 */
function k8s_update_8221() {
  $files = [
    'views.view.k8s_deployment.yml',
    'views.view.k8s_pod.yml',
    'views.view.k8s_service.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add block for node in k8s pod view.
 */
function k8s_update_8222() {
  cloud_update_yml_definitions(['views.view.k8s_pod.yml'], 'k8s');
}

/**
 * Add entity type k8s_limit_range and view k8s_limit_range.
 */
function k8s_update_8223() {
  // Add entity type k8s_limit_range.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_limit_range');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_limit_range.
  $files = [
    'views.view.k8s_limit_range.yml',
    'system.action.k8s_limit_range_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_replica_set and view k8s_replica_set.
 */
function k8s_update_8224() {
  // Add entity type k8s_replica_set.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_replica_set');
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_replica_set.
  $files = [
    'views.view.k8s_replica_set.yml',
    'system.action.k8s_replica_set_delete_action.yml',
  ];

  cloud_update_yml_definitions($files, 'k8s');
  drupal_flush_all_caches();
}

/**
 * Add entity type k8s_secret and view k8s_secret.
 */
function k8s_update_8225() {
  // Add entity type k8s_secret.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_secret');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_secret.
  $files = [
    'views.view.k8s_secret.yml',
    'system.action.k8s_secret_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
  drupal_flush_all_caches();
}

/**
 * Add fields about Locaion to cloud_config.
 */
function k8s_update_8226() {
  // Add new fields and update entity cloud_config.k8s.
  $files = [
    'field.field.cloud_config.k8s.field_location_country.yml',
    'field.field.cloud_config.k8s.field_location_city.yml',
    'field.field.cloud_config.k8s.field_location_latitude.yml',
    'field.field.cloud_config.k8s.field_location_longitude.yml',
    'core.entity_form_display.cloud_config.k8s.default.yml',
    'core.entity_view_display.cloud_config.k8s.default.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

/**
 * Add entity type k8s_config_map and view k8s_config_map.
 */
function k8s_update_8227() {
  // Add entity type k8s_config_map.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_config_map');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_config_map.
  $files = [
    'views.view.k8s_config_map.yml',
    'system.action.k8s_config_map_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
  drupal_flush_all_caches();
}

/**
 * Add entity type k8s_network_policy and view k8s_network_policy.
 */
function k8s_update_8228() {
  // Add entity type k8s_network_policy.
  $definition_update_manager = \Drupal::entityDefinitionUpdateManager();
  $entity_type = \Drupal::entityTypeManager()->getDefinition('k8s_network_policy');
  $definition_update_manager->uninstallEntityType($entity_type);
  $definition_update_manager->installEntityType($entity_type);

  // Add view k8s_network_policy.
  $files = [
    'views.view.k8s_network_policy.yml',
    'system.action.k8s_network_policy_delete_action.yml',
  ];
  cloud_update_yml_definitions($files, 'k8s');
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc