cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/tests/src/Traits/K8sTestMockTrait.php

modules/cloud_service_providers/k8s/tests/src/Traits/K8sTestMockTrait.php
<?php

namespace Drupal\Tests\k8s\Traits;

use Drupal\Component\Utility\Random;

/**
 * The trait creating mock data for k8s testing.
 */
trait K8sTestMockTrait {

  /**
   * Update getNodes in mock data.
   *
   * @param array $data
   *   The mock data.
   */
  protected function updateNodesMockData(array $data) {
    $mock_data = $this->getMockDataFromConfig();
    $random = new Random();

    $nodes = [];
    foreach ($data as $node_data) {
      $nodes[] = [
        'metadata' => [
          'name' => $node_data['name'],
          'creationTimestamp' => date('Y/m/d H:i:s'),
          'labels' => [
            'label1' => 'label-' . $random->string(8, TRUE),
          ],
          'annotations' => [
            'annotation1' => 'annotation-' . $random->string(8, TRUE),
          ],
        ],
        'spec' => [
          'podCIDR' => $random->name(8, TRUE),
          'providerID' => $random->name(8, TRUE),
          'unschedulable' => FALSE,
        ],
        'status' => [
          'capacity' => [
            'cpu' => 2,
            'memory' => '2Gi',
            'pods' => 110,
          ],
          'conditions' => [
            [
              'type' => 'Ready',
            ],
          ],
          'addresses' => [
            [
              'type' => 'type-' . $random->name(8, TRUE),
              'address' => implode(
                '.',
                [rand(0, 254), rand(0, 255), rand(0, 255), rand(1, 255)]
              ),
            ],
          ],
          'nodeInfo' => [
            'machineID' => 'machine-' . $random->name(16, TRUE),
            'systemUUID' => 'system-' . $random->name(16, TRUE),
            'bootID' => 'boot-' . $random->name(16, TRUE),
            'kernelVersion' => 'kernel-' . $random->name(8, TRUE),
            'osImage' => 'os-' . $random->name(8, TRUE),
            'containerRuntimeVersion' => 'version-' . $random->name(8, TRUE),
            'kubeletVersion' => 'kubelet-' . $random->name(8, TRUE),
            'kubeProxyVersion' => 'kubeProxy-' . $random->name(8, TRUE),
            'operatingSystem' => 'linux',
            'architecture' => 'arc-' . $random->name(8, TRUE),
          ],
        ],
      ];
    }
    $mock_data['getNodes'] = $nodes;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createNamespace in mock data.
   *
   * @param array $namespace
   *   The namespace mock data.
   */
  protected function addNamespaceMockData(array $namespace) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_namespace = [
      'metadata' => [
        'name' => $namespace['name'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['createNamespace'] = $create_namespace;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update getNamespace in mock data.
   *
   * @param array $namespace
   *   The namespace mock data.
   */
  protected function getNamespaceMockData(array $namespace) {
    $get_namespaces[] = [
      'metadata' => [
        'name' => $namespace['name'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateNamespace in mock data.
   *
   * @param array $namespace
   *   The namespace mock data.
   */
  protected function updateNamespaceMockData(array $namespace) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_namespace = [
      'metadata' => [
        'name' => $namespace['name'],
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['updateNamespace'] = $update_namespace;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteNamespace in mock data.
   *
   * @param array $namespace
   *   The namespace mock data.
   */
  protected function deleteNamespaceMockData(array $namespace) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_namespace = [
      'metadata' => [
        'name' => $namespace['name'],
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['deleteNamespace'] = $delete_namespace;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deletePod in mock data.
   *
   * @param array $pod
   *   The pod mock data.
   */
  protected function deletePodMockData(array $pod) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_pod = [
      'metadata' => [
        'name' => $pod['name'],
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['deletePod'] = $delete_pod;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createPod in mock data.
   *
   * @param array $pod
   *   The pod mock data.
   */
  protected function addPodMockData(array $pod) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_pod = [
      'metadata' => [
        'name' => $pod['name'],
        'namespace' => $pod['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['createPod'] = $create_pod;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $pod['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_pods = [];
    $get_pods[] = $create_pod;
    $get_pods[0]['spec'] = [
      'containers' => [],
      'nodeName' => 'node-name' . $random->name(8, TRUE),
    ];
    $get_pods[0]['status'] = [
      'containerStatuses' => [],
      'phase' => 'Active',
      'qosClass' => 'BestEffort',
      'podIP' => '10.0.0.1',
    ];
    $mock_data['getPods'] = $get_pods;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updatePod in mock data.
   *
   * @param array $pod
   *   The pod mock data.
   */
  protected function updatePodMockData(array $pod) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_pod = [
      'metadata' => [
        'name' => $pod['name'],
        'namespace' => $pod['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['updatePod'] = $update_pod;

    $get_pods = [];
    $get_pods[] = $update_pod;
    $get_pods[0]['spec'] = [
      'containers' => [],
      'nodeName' => 'node-name' . $random->name(8, TRUE),
    ];
    $get_pods[0]['status'] = [
      'containerStatuses' => [],
      'phase' => 'Active',
      'qosClass' => 'BestEffort',
      'podIP' => '10.0.0.1',
    ];
    $mock_data['getPods'] = $get_pods;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update getPodLogs in mock data.
   *
   * @param string $logs
   *   The pod mock data.
   */
  protected function getPodLogsMockData($logs) {
    $mock_data = $this->getMockDataFromConfig();

    $mock_data['getPodLogs'] = $logs;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update getMetricsPod in mock data.
   *
   * @param string $metrics
   *   The pod mock data.
   */
  protected function getMetricsPodMockData($metrics) {
    $mock_data = $this->getMockDataFromConfig();
    $mock_data['getMetricsPods'] = $metrics;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createDeployment in mock data.
   *
   * @param array $deployment
   *   The pod mock data.
   */
  protected function addDeploymentMockData(array $deployment) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_deployment = [
      'metadata' => [
        'name' => $deployment['name'],
        'namespace' => $deployment['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['createDeployment'] = $create_deployment;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $deployment['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_deployments = [];
    $get_deployments[] = $create_deployment;
    $get_deployments[0]['spec'] = [
      'strategy' => ['type' => 'rollingUpdate'],
      'revisionHistoryLimit' => 10,
    ];
    $get_deployments[0]['status'] = [
      'availableReplicas' => 3,
      'collisionCount' => 1,
      'observedGeneration' => 5,
      'readyReplicas' => 2,
      'replicas' => 2,
      'unavailableReplicas' => 1,
      'updatedReplicas' => 2,
    ];
    $mock_data['getDeployments'] = $get_deployments;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateDeployment in mock data.
   *
   * @param array $deployment
   *   The deployment mock data.
   */
  protected function updateDeploymentMockData(array $deployment) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_deployment = [
      'metadata' => [
        'name' => $deployment['name'],
        'namespace' => $deployment['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['updateDeployment'] = $update_deployment;

    $get_deployments = [];
    $get_deployments[] = $update_deployment;
    $get_deployments[0]['spec'] = [
      'strategy' => ['type' => 'rollingUpdate'],
      'revisionHistoryLimit' => 10,
    ];
    $get_deployments[0]['status'] = [
      'availableReplicas' => 3,
      'collisionCount' => 1,
      'observedGeneration' => 5,
      'readyReplicas' => 2,
      'replicas' => 2,
      'unavailableReplicas' => 1,
      'updatedReplicas' => 2,
    ];
    $mock_data['getDeployments'] = $get_deployments;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteDeployment in mock data.
   *
   * @param array $deployment
   *   The deployment mock data.
   */
  protected function deleteDeploymentMockData(array $deployment) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_deployment = [
      'metadata' => [
        'name' => $deployment['name'],
      ],
    ];
    $mock_data['deleteDeployment'] = $delete_deployment;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createReplicaSet in mock data.
   *
   * @param array $replica_set
   *   The pod mock data.
   */
  protected function addReplicaSetMockData(array $replica_set) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_replica_set = [
      'metadata' => [
        'name' => $replica_set['name'],
        'namespace' => $replica_set['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'phase' => 'Active',
      ],
    ];
    $mock_data['createReplicaSet'] = $create_replica_set;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $replica_set['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_replica_sets = [];
    $get_replica_sets[] = $create_replica_set;
    $get_replica_sets[0]['spec'] = [
      'replicas' => 10,
    ];
    $get_replica_sets[0]['status'] = [
      'availableReplicas' => 5,
      'observedGeneration' => 2,
      'readyReplicas' => 2,
      'fullyLabeledReplicas' => 1,
    ];
    $mock_data['getReplicaSets'] = $get_replica_sets;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateReplicaSet in mock data.
   *
   * @param array $replica_set
   *   The replica set mock data.
   */
  protected function updateReplicaSetMockData(array $replica_set) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_replica_set = [
      'metadata' => [
        'name' => $replica_set['name'],
        'namespace' => $replica_set['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['updateReplicaSet'] = $update_replica_set;

    $get_replica_sets = [];
    $get_replica_sets[] = $update_replica_set;

    $get_replica_sets[0]['spec'] = [
      'replicas' => 15,
    ];
    $get_replica_sets[0]['status'] = [
      'availableReplicas' => 5,
      'observedGeneration' => 3,
      'readyReplicas' => 2,
      'fullyLabeledReplicas' => 2,
    ];
    $mock_data['getReplicaSets'] = $get_replica_sets;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteReplicaSet in mock data.
   *
   * @param array $replica_set
   *   The replica set mock data.
   */
  protected function deleteReplicaSetMockData(array $replica_set) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_replica_set = [
      'metadata' => [
        'name' => $replica_set['name'],
      ],
    ];
    $mock_data['deleteReplicaSet'] = $delete_replica_set;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createService in mock data.
   *
   * @param array $service
   *   The pod mock data.
   */
  protected function addServiceMockData(array $service) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_service = [
      'metadata' => [
        'name' => $service['name'],
        'namespace' => $service['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'ports' => [],
        'selector' => [],
        'clusterIP' => '10.10.0.1',
        'type' => 'ClusterIP',
        'sessionAffinity' => 'None',
      ],
    ];
    $mock_data['createService'] = $create_service;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $service['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_services = [];
    $get_services[] = $create_service;
    $mock_data['getServices'] = $get_services;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateService in mock data.
   *
   * @param array $service
   *   The service mock data.
   */
  protected function updateServiceMockData(array $service) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_service = [
      'metadata' => [
        'name' => $service['name'],
        'namespace' => $service['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'ports' => [],
        'selector' => [],
        'clusterIP' => '10.10.0.1',
        'type' => 'ClusterIP',
        'sessionAffinity' => 'None',
      ],
    ];
    $mock_data['updateService'] = $update_service;

    $get_services = [];
    $get_services[] = $update_service;
    $mock_data['getServices'] = $get_services;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteService in mock data.
   *
   * @param array $service
   *   The service mock data.
   */
  protected function deleteServiceMockData(array $service) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_service = [
      'metadata' => [
        'name' => $service['name'],
      ],
    ];
    $mock_data['deleteService'] = $delete_service;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createCronJob in mock data.
   *
   * @param array $cron_job
   *   The pod mock data.
   */
  protected function addCronJobMockData(array $cron_job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_cron_job = [
      'metadata' => [
        'name' => $cron_job['name'],
        'namespace' => $cron_job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'schedule' => '* * */1 * *',
        'suspend' => FALSE,
        'concurrencyPolicy' => 'Allow',
        'startingDeadlineSeconds' => 10,
      ],
      'status' => [
        'lastScheduleTime' => date('Y/m/d H:i:s'),
        'active' => [],
      ],
    ];
    $mock_data['createCronJob'] = $create_cron_job;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $cron_job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_cron_jobs = [];
    $get_cron_jobs[] = $create_cron_job;
    $mock_data['getCronJobs'] = $get_cron_jobs;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateCronJob in mock data.
   *
   * @param array $cron_job
   *   The cron job mock data.
   */
  protected function updateCronJobMockData(array $cron_job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_cron_job = [
      'metadata' => [
        'name' => $cron_job['name'],
        'namespace' => $cron_job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'schedule' => '* * */1 * *',
        'suspend' => FALSE,
        'concurrencyPolicy' => 'Allow',
        'startingDeadlineSeconds' => 10,
      ],
      'status' => [
        'lastScheduleTime' => date('Y/m/d H:i:s'),
        'active' => [],
      ],
    ];
    $mock_data['updateCronJob'] = $update_cron_job;

    $get_cron_jobs = [];
    $get_cron_jobs[] = $update_cron_job;
    $mock_data['getCronJobs'] = $get_cron_jobs;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteCronJob in mock data.
   *
   * @param array $cron_job
   *   The cron job mock data.
   */
  protected function deleteCronJobMockData(array $cron_job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_cron_job = [
      'metadata' => [
        'name' => $cron_job['name'],
      ],
    ];
    $mock_data['deleteCronJob'] = $delete_cron_job;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createJob in mock data.
   *
   * @param array $job
   *   The pod mock data.
   */
  protected function addJobMockData(array $job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_job = [
      'metadata' => [
        'name' => $job['name'],
        'namespace' => $job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'completions' => 1,
        'parallelism' => 1,
        'template' => [
          'spec' => [
            'containers' => [
              [
                'image' => 'perl',
              ],
            ],
          ],
        ],
      ],
      'status' => [
        'active' => 0,
        'succeeded' => 1,
        'failed' => 0,
      ],
    ];
    $mock_data['createJob'] = $create_job;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_jobs = [];
    $get_jobs[] = $create_job;
    $mock_data['getJobs'] = $get_jobs;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateJob in mock data.
   *
   * @param array $job
   *   The job mock data.
   */
  protected function updateJobMockData(array $job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_job = [
      'metadata' => [
        'name' => $job['name'],
        'namespace' => $job['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'completions' => 1,
        'parallelism' => 1,
        'template' => [
          'spec' => [
            'containers' => [
              [
                'image' => 'perl',
              ],
            ],
          ],
        ],
      ],
      'status' => [
        'active' => 0,
        'succeeded' => 1,
        'failed' => 0,
      ],
    ];
    $mock_data['updateJob'] = $update_job;

    $get_jobs = [];
    $get_jobs[] = $update_job;
    $mock_data['getJobs'] = $get_jobs;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteJob in mock data.
   *
   * @param array $job
   *   The job mock data.
   */
  protected function deleteJobMockData(array $job) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_job = [
      'metadata' => [
        'name' => $job['name'],
      ],
    ];
    $mock_data['deleteJob'] = $delete_job;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createResourceQuota in mock data.
   *
   * @param array $resource_quota
   *   The pod mock data.
   */
  protected function addResourceQuotaMockData(array $resource_quota) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_resource_quota = [
      'metadata' => [
        'name' => $resource_quota['name'],
        'namespace' => $resource_quota['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'status' => [
        'hard' => [
          'cpu' => '10',
          'memory' => '20Gi',
          'pods' => '10',
        ],
        'used' => [
          'cpu' => '100m',
          'memory' => '1Gi',
          'pods' => '1',
        ],
      ],
    ];
    $mock_data['createResourceQuota'] = $create_resource_quota;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $resource_quota['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_resource_quotas = [];
    $get_resource_quotas[] = $create_resource_quota;
    $mock_data['getResourceQuotas'] = $get_resource_quotas;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateResourceQuota in mock data.
   *
   * @param array $resource_quota
   *   The resource quota mock data.
   */
  protected function updateResourceQuotaMockData(array $resource_quota) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_resource_quota = [
      'metadata' => [
        'name' => $resource_quota['name'],
        'namespace' => $resource_quota['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'completions' => 1,
        'parallelism' => 1,
        'template' => [
          'spec' => [
            'containers' => [
              [
                'image' => 'perl',
              ],
            ],
          ],
        ],
      ],
      'status' => [
        'active' => 0,
        'succeeded' => 1,
        'failed' => 0,
      ],
    ];
    $mock_data['updateResourceQuota'] = $update_resource_quota;

    $get_resource_quotas = [];
    $get_resource_quotas[] = $update_resource_quota;
    $mock_data['getResourceQuotas'] = $get_resource_quotas;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteResourceQuota in mock data.
   *
   * @param array $resource_quota
   *   The resource quota mock data.
   */
  protected function deleteResourceQuotaMockData(array $resource_quota) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_resource_quota = [
      'metadata' => [
        'name' => $resource_quota['name'],
      ],
    ];
    $mock_data['deleteResourceQuota'] = $delete_resource_quota;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createLimitRange in mock data.
   *
   * @param array $limit_range
   *   The limit range mock data.
   */
  protected function addLimitRangeMockData(array $limit_range) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_limit_range = [
      'metadata' => [
        'name' => $limit_range['name'],
        'namespace' => $limit_range['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'limits' => [
          [
            'type' => 'Pod',
            'maxLimitRequestRatio' => [
              'memory' => '3',
            ],
          ],
        ],
      ],
    ];
    $mock_data['createLimitRange'] = $create_limit_range;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $limit_range['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_limit_ranges = [];
    $get_limit_ranges[] = $create_limit_range;
    $mock_data['getLimitRanges'] = $get_limit_ranges;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateLimitRange in mock data.
   *
   * @param array $limit_range
   *   The limit range mock data.
   */
  protected function updateLimitRangeMockData(array $limit_range) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_limit_range = [
      'metadata' => [
        'name' => $limit_range['name'],
        'namespace' => $limit_range['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'limits' => [
          [
            'type' => 'Pod',
            'maxLimitRequestRatio' => [
              'memory' => '3',
            ],
          ],
        ],
      ],
    ];
    $mock_data['updateLimitRange'] = $update_limit_range;

    $get_limit_ranges = [];
    $get_limit_ranges[] = $update_limit_range;
    $mock_data['getLimitRanges'] = $get_limit_ranges;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteLimitRange in mock data.
   *
   * @param array $limit_range
   *   The limit range mock data.
   */
  protected function deleteLimitRangeMockData(array $limit_range) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_limit_range = [
      'metadata' => [
        'name' => $limit_range['name'],
      ],
    ];
    $mock_data['deleteLimitRange'] = $delete_limit_range;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createSecret in mock data.
   *
   * @param array $secret
   *   The secret mock data.
   */
  protected function addSecretMockData(array $secret) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_secret = [
      'metadata' => [
        'name' => $secret['name'],
        'namespace' => $secret['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'data' => [
        'username' => 'YWRtaW4=',
        'password' => 'MWYyZDFlMmU2N2Rm',
      ],
      'type' => 'Opaque',
    ];
    $mock_data['createSecret'] = $create_secret;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $secret['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_secrets = [];
    $get_secrets[] = $create_secret;
    $mock_data['getSecrets'] = $get_secrets;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateSecret in mock data.
   *
   * @param array $secret
   *   The secret mock data.
   */
  protected function updateSecretMockData(array $secret) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_secret = [
      'metadata' => [
        'name' => $secret['name'],
        'namespace' => $secret['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'data' => [
        'username' => 'YWRtaW4=',
        'password' => 'MWYyZDFlMmU2N2Rm',
      ],
      'type' => 'Opaque',
    ];
    $mock_data['updateSecret'] = $update_secret;

    $get_secrets = [];
    $get_secrets[] = $update_secret;
    $mock_data['getSecrets'] = $get_secrets;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteSecret in mock data.
   *
   * @param array $secret
   *   The secret mock data.
   */
  protected function deleteSecretMockData(array $secret) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_secret = [
      'metadata' => [
        'name' => $secret['name'],
      ],
    ];
    $mock_data['deleteSecret'] = $delete_secret;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createConfigMap in mock data.
   *
   * @param array $config_map
   *   The config map mock data.
   */
  protected function addConfigMapMockData(array $config_map) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_config_map = [
      'metadata' => [
        'name' => $config_map['name'],
        'namespace' => $config_map['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'data' => [
        'property1' => 'hello',
        'property2' => 'world',
      ],
    ];
    $mock_data['createConfigMap'] = $create_config_map;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $config_map['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_config_maps = [];
    $get_config_maps[] = $create_config_map;
    $mock_data['getConfigMaps'] = $get_config_maps;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateConfigMap in mock data.
   *
   * @param array $config_map
   *   The config map mock data.
   */
  protected function updateConfigMapMockData(array $config_map) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_config_map = [
      'metadata' => [
        'name' => $config_map['name'],
        'namespace' => $config_map['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'data' => [
        'property1' => 'hello',
        'property2' => 'world',
      ],
      'type' => 'Opaque',
    ];
    $mock_data['updateConfigMap'] = $update_config_map;

    $get_config_maps = [];
    $get_config_maps[] = $update_config_map;
    $mock_data['getConfigMaps'] = $get_config_maps;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteConfigMap in mock data.
   *
   * @param array $config_map
   *   The config map mock data.
   */
  protected function deleteConfigMapMockData(array $config_map) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_config_map = [
      'metadata' => [
        'name' => $config_map['name'],
      ],
    ];
    $mock_data['deleteConfigMap'] = $delete_config_map;
    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update createNetworkPolicy in mock data.
   *
   * @param array $network_policy
   *   The network policy mock data.
   */
  protected function addNetworkPolicyMockData(array $network_policy) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $create_network_policy = [
      'metadata' => [
        'name' => $network_policy['name'],
        'namespace' => $network_policy['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'egress' => NULL,
        'ingress' => NULL,
        'pod_selector' => NULL,
        'policy_types' => NULL,
      ],
    ];
    $mock_data['createNetworkPolicy'] = $create_network_policy;

    $get_namespaces[] = [
      'metadata' => [
        'name' => $network_policy['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
    ];
    $mock_data['getNamespaces'] = $get_namespaces;

    $get_network_policies = [];
    $get_network_policies[] = $create_network_policy;
    $mock_data['getNetworkPolicies'] = $get_network_policies;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update updateNetworkPolicy in mock data.
   *
   * @param array $network_policy
   *   The network policy mock data.
   */
  protected function updateNetworkPolicyMockData(array $network_policy) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $update_network_policy = [
      'metadata' => [
        'name' => $network_policy['name'],
        'namespace' => $network_policy['post_data']['namespace'],
        'creationTimestamp' => date('Y/m/d H:i:s'),
      ],
      'spec' => [
        'egress' => NULL,
        'ingress' => NULL,
        'pod_selector' => NULL,
        'policy_types' => NULL,
      ],
    ];
    $mock_data['updateNetworkPolicy'] = $update_network_policy;

    $get_network_policies = [];
    $get_network_policies[] = $update_network_policy;
    $mock_data['getNetworkPolicies'] = $get_network_policies;

    $this->updateMockDataToConfig($mock_data);
  }

  /**
   * Update deleteNetworkPolicy in mock data.
   *
   * @param array $network_policy
   *   The network policy mock data.
   */
  protected function deleteNetworkPolicyMockData(array $network_policy) {
    $mock_data = $this->getMockDataFromConfig();

    $random = new Random();
    $delete_network_policy = [
      'metadata' => [
        'name' => $network_policy['name'],
      ],
    ];
    $mock_data['deleteNetworkPolicy'] = $delete_network_policy;
    $this->updateMockDataToConfig($mock_data);
  }

}

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

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