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

Issue #3230958 by Xiaohua Guan, yas: Support to operate k8s namespace from...

Issue #3230958 by Xiaohua Guan, yas: Support to operate k8s namespace from Cloud Orchestrator master to workers
parent cdbea140
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,7 @@ class K8sEntityBase extends CloudContentEntityBase implements K8sEntityInterface
* {@inheritdoc}
*/
public function getLabels(): array {
return $this->get('labels')->getValue();
return array_column($this->get('labels')->getValue(), 'item_value', 'item_key');
}
/**
......
......@@ -72,10 +72,7 @@ class K8sNamespaceCreateForm extends K8sContentForm {
$entity->setCloudContext($cloud_context);
// Get labels.
$labels = [];
foreach ($entity->getLabels() ?: [] as $label) {
$labels[$label['item_key']] = $label['item_value'];
}
$labels = $entity->getLabels();
$this->k8sService->setCloudContext($cloud_context);
$params = [];
......@@ -92,6 +89,12 @@ class K8sNamespaceCreateForm extends K8sContentForm {
try {
$result = $this->k8sService->createNamespace($params);
if (!empty($result['SendToWorker'])) {
$this->processOperationStatus($entity, 'created remotely');
$form_state->setRedirect('view.k8s_namespace.list', ['cloud_context' => $entity->getCloudContext()]);
return;
}
$entity->setStatus($result['status']['phase']);
$entity->setCreated(strtotime($result['metadata']['creationTimestamp']));
$entity->save();
......
......@@ -35,12 +35,18 @@ class K8sNamespaceDeleteForm extends K8sDeleteForm {
try {
$this->k8sService->setCloudContext($entity->getCloudContext());
$this->k8sService->deleteNamespace([
$result = $this->k8sService->deleteNamespace([
'metadata' => [
'name' => $entity->getName(),
],
]);
if (!empty($result['SendToWorker'])) {
$this->processOperationStatus($entity, 'deleted remotely');
$form_state->setRedirect('view.k8s_namespace.list', ['cloud_context' => $entity->getCloudContext()]);
return;
}
$entity->delete();
$this->messenger->addStatus($this->getDeletionMessage());
......
......@@ -60,17 +60,12 @@ class K8sNamespaceEditForm extends K8sContentForm {
$entity = $this->entity;
// Get labels.
$labels = [];
foreach ($entity->getLabels() ?: [] as $label) {
$labels[$label['item_key']] = $label['item_value'];
}
$this->k8sService->setCloudContext($entity->getCloudContext());
$params = [
'metadata' => [
'name' => $entity->getName(),
'labels' => $labels,
'labels' => $entity->getLabels(),
'annotations' => $entity->getAnnotations(),
],
];
......@@ -80,10 +75,18 @@ class K8sNamespaceEditForm extends K8sContentForm {
}
try {
$this->k8sService->updateNamespace($params);
$result = $this->k8sService->updateNamespace($params);
$entity->save();
if (!empty($result['SendToWorker'])) {
$this->processOperationStatus($entity, 'updated remotely');
$form_state->setRedirect('view.k8s_namespace.list', [
'cloud_context' => $entity->getCloudContext(),
]);
return;
}
$this->k8sService->updateNamespaces([
'metadata.name' => $entity->getName(),
], FALSE);
......
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