Skip to content
Snippets Groups Projects
Commit 87bd62aa authored by Yas Naoi's avatar Yas Naoi
Browse files

Issue #3284108 by yas, Xiaohua Guan, shota niioka: Refactor to update K8s resources

parent 0da61b68
No related branches found
No related tags found
3 merge requests!1316Issue #3310263: Release 4.5.0,!1260Issue #3307397: Release 4.4.0,!1021Issue #3284108: Refactor to update K8s resources
Showing
with 66 additions and 377 deletions
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sApiServiceModel; use Drupal\k8s\Service\K8sClientExtension\Models\ApiService;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s api services collection. * K8s api services collection.
*/ */
class K8sApiServiceCollection extends Collection { class ApiServiceCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sApiServiceCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sApiServiceCollection extends Collection {
*/ */
protected function getApiServices(array $items): array { protected function getApiServices(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sApiServiceModel) { if ($item instanceof ApiService) {
continue; continue;
} }
$item = new K8sApiServiceModel($item); $item = new ApiService($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sClusterRoleBindingModel; use Drupal\k8s\Service\K8sClientExtension\Models\ClusterRoleBinding;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s cluster role bindings collection. * K8s cluster role bindings collection.
*/ */
class K8sClusterRoleBindingCollection extends Collection { class ClusterRoleBindingCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sClusterRoleBindingCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sClusterRoleBindingCollection extends Collection {
*/ */
protected function getClusterRoleBindings(array $items): array { protected function getClusterRoleBindings(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sClusterRoleBindingModel) { if ($item instanceof ClusterRoleBinding) {
continue; continue;
} }
$item = new K8sClusterRoleBindingModel($item); $item = new ClusterRoleBinding($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sClusterRoleModel; use Drupal\k8s\Service\K8sClientExtension\Models\ClusterRole;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s cluster roles collection. * K8s cluster roles collection.
*/ */
class K8sClusterRoleCollection extends Collection { class ClusterRoleCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sClusterRoleCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sClusterRoleCollection extends Collection {
*/ */
protected function getClusterRoles(array $items): array { protected function getClusterRoles(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sClusterRoleModel) { if ($item instanceof ClusterRole) {
continue; continue;
} }
$item = new K8sClusterRoleModel($item); $item = new ClusterRole($item);
} }
return $items; return $items;
......
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sDaemonSetModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s DaemonSets collection.
*/
class K8sDaemonSetCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getDaemonSets($items));
}
/**
* Get an array of K8s DaemonSets.
*
* @param array $items
* The items.
*
* @return array
* The array of K8s DaemonSets.
*/
protected function getDaemonSets(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sDaemonSetModel) {
continue;
}
$item = new K8sDaemonSetModel($item);
}
return $items;
}
}
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sHorizontalPodAutoscalerModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s priority classes collection.
*/
class K8sHorizontalPodAutoscalerCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getHorizontalPodAutoscalers($items));
}
/**
* Get an array of horizontal pod autoscalers.
*
* @param array $items
* The items.
*
* @return array
* The array of roles.
*/
protected function getHorizontalPodAutoscalers(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sHorizontalPodAutoscalerModel) {
continue;
}
$item = new K8sHorizontalPodAutoscalerModel($item);
}
return $items;
}
}
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sReplicaSetModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s ReplicaSets collection.
*/
class K8sReplicaSetCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getReplicaSets($items));
}
/**
* Get an array of K8s ReplicaSets.
*
* @param array $items
* The items.
*
* @return array
* The array of K8s ReplicaSets.
*/
protected function getReplicaSets(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sReplicaSetModel) {
continue;
}
$item = new K8sReplicaSetModel($item);
}
return $items;
}
}
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sRoleBindingModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s role bindings collection.
*/
class K8sRoleBindingCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getRoleBindings($items));
}
/**
* Get an array of role bindings.
*
* @param array $items
* The items.
*
* @return array
* The array of roles.
*/
protected function getRoleBindings(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sRoleBindingModel) {
continue;
}
$item = new K8sRoleBindingModel($item);
}
return $items;
}
}
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sRoleModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s roles collection.
*/
class K8sRoleCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getRoles($items));
}
/**
* Get an array of roles.
*
* @param array $items
* The items.
*
* @return array
* The array of roles.
*/
protected function getRoles(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sRoleModel) {
continue;
}
$item = new K8sRoleModel($item);
}
return $items;
}
}
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sServiceAccountModel;
use Maclof\Kubernetes\Collections\Collection;
/**
* K8s ServiceAccounts collection.
*/
class K8sServiceAccountCollection extends Collection {
/**
* The constructor.
*
* @param array $items
* The items.
*/
public function __construct(array $items) {
parent::__construct($this->getServiceAccounts($items));
}
/**
* Get an array of K8s ServiceAccounts.
*
* @param array $items
* The items.
*
* @return array
* The array of K8s ServiceAccounts.
*/
protected function getServiceAccounts(array $items): array {
foreach ($items ?: [] as &$item) {
if ($item instanceof K8sServiceAccountModel) {
continue;
}
$item = new K8sServiceAccountModel($item);
}
return $items;
}
}
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sLimitRangeModel; use Drupal\k8s\Service\K8sClientExtension\Models\LimitRange;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s LimitRanges collection. * K8s LimitRanges collection.
*/ */
class K8sLimitRangeCollection extends Collection { class LimitRangeCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sLimitRangeCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sLimitRangeCollection extends Collection {
*/ */
protected function getLimitRanges(array $items): array { protected function getLimitRanges(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sLimitRangeModel) { if ($item instanceof LimitRange) {
continue; continue;
} }
$item = new K8sLimitRangeModel($item); $item = new LimitRange($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sMetricsNodeModel; use Drupal\k8s\Service\K8sClientExtension\Models\MetricsNode;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s metrics nodes collection. * K8s metrics nodes collection.
*/ */
class K8sMetricsNodeCollection extends Collection { class MetricsNodeCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sMetricsNodeCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sMetricsNodeCollection extends Collection {
*/ */
protected function getMetricsNodes(array $items): array { protected function getMetricsNodes(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sMetricsNodeModel) { if ($item instanceof MetricsNode) {
continue; continue;
} }
$item = new K8sMetricsNodeModel($item); $item = new MetricsNode($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sMetricsPodModel; use Drupal\k8s\Service\K8sClientExtension\Models\MetricsPod;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s metrics pods collection. * K8s metrics pods collection.
*/ */
class K8sMetricsPodCollection extends Collection { class MetricsPodCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sMetricsPodCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sMetricsPodCollection extends Collection {
*/ */
protected function getMetricsPods(array $items): array { protected function getMetricsPods(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sMetricsPodModel) { if ($item instanceof MetricsPod) {
continue; continue;
} }
$item = new K8sMetricsPodModel($item); $item = new MetricsPod($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sPriorityClassModel; use Drupal\k8s\Service\K8sClientExtension\Models\PriorityClass;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s priority classes collection. * K8s priority classes collection.
*/ */
class K8sPriorityClassCollection extends Collection { class PriorityClassCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sPriorityClassCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sPriorityClassCollection extends Collection {
*/ */
protected function getPriorityClasses(array $items): array { protected function getPriorityClasses(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sPriorityClassModel) { if ($item instanceof PriorityClass) {
continue; continue;
} }
$item = new K8sPriorityClassModel($item); $item = new PriorityClass($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sStatefulSetModel; use Drupal\k8s\Service\K8sClientExtension\Models\StatefulSet;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s StatefulSets collection. * K8s StatefulSets collection.
*/ */
class K8sStatefulSetCollection extends Collection { class StatefulSetCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sStatefulSetCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sStatefulSetCollection extends Collection {
*/ */
protected function getStatefulSets(array $items): array { protected function getStatefulSets(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sStatefulSetModel) { if ($item instanceof StatefulSet) {
continue; continue;
} }
$item = new K8sStatefulSetModel($item); $item = new StatefulSet($item);
} }
return $items; return $items;
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
namespace Drupal\k8s\Service\K8sClientExtension\Collections; namespace Drupal\k8s\Service\K8sClientExtension\Collections;
use Drupal\k8s\Service\K8sClientExtension\Models\K8sStorageClassModel; use Drupal\k8s\Service\K8sClientExtension\Models\StorageClass;
use Maclof\Kubernetes\Collections\Collection; use Maclof\Kubernetes\Collections\Collection;
/** /**
* K8s storage classes collection. * K8s storage classes collection.
*/ */
class K8sStorageClassCollection extends Collection { class StorageClassCollection extends Collection {
/** /**
* The constructor. * The constructor.
...@@ -31,11 +31,11 @@ class K8sStorageClassCollection extends Collection { ...@@ -31,11 +31,11 @@ class K8sStorageClassCollection extends Collection {
*/ */
protected function getStorageClasses(array $items): array { protected function getStorageClasses(array $items): array {
foreach ($items ?: [] as &$item) { foreach ($items ?: [] as &$item) {
if ($item instanceof K8sStorageClassModel) { if ($item instanceof StorageClass) {
continue; continue;
} }
$item = new K8sStorageClassModel($item); $item = new StorageClass($item);
} }
return $items; return $items;
......
...@@ -2,23 +2,16 @@ ...@@ -2,23 +2,16 @@
namespace Drupal\k8s\Service\K8sClientExtension; namespace Drupal\k8s\Service\K8sClientExtension;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sApiServiceRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\ApiServiceRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sClusterRoleBindingRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\ClusterRoleBindingRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sClusterRoleRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\ClusterRoleRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sDaemonSetRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\LimitRangeRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sHorizontalPodAutoscalerRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\MetricsNodeRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sLimitRangeRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\MetricsPodRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sMetricsNodeRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\PriorityClassRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sMetricsPodRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sPersistentVolumeRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sPriorityClassRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sQuotaRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sQuotaRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sReplicaSetRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\StatefulSetRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sRoleBindingRepository; use Drupal\k8s\Service\K8sClientExtension\Repositories\StorageClassRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sRoleRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sServiceAccountRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sStatefulSetRepository;
use Drupal\k8s\Service\K8sClientExtension\Repositories\K8sStorageClassRepository;
use Maclof\Kubernetes\RepositoryRegistry; use Maclof\Kubernetes\RepositoryRegistry;
/** /**
...@@ -32,56 +25,35 @@ class K8sRepositoryRegistry extends RepositoryRegistry { ...@@ -32,56 +25,35 @@ class K8sRepositoryRegistry extends RepositoryRegistry {
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
// Change the repository of quotas. // Add the repository of api services.
$this->map['quotas'] = K8sQuotaRepository::class; $this->map['apiServices'] = ApiServiceRepository::class;
// Change the repository of K8s LimitRanges.
$this->map['limitRanges'] = K8sLimitRangeRepository::class;
// Add the repository of metrics pods.
$this->map['metricsPods'] = K8sMetricsPodRepository::class;
// Add the repository of metrics nodes.
$this->map['metricsNodes'] = K8sMetricsNodeRepository::class;
// Add the repository of roles.
$this->map['roles'] = K8sRoleRepository::class;
// Add the repository of role bindings.
$this->map['roleBindings'] = K8sRoleBindingRepository::class;
// Add the repository of cluster roles. // Add the repository of cluster roles.
$this->map['clusterRoles'] = K8sClusterRoleRepository::class; $this->map['clusterRoles'] = ClusterRoleRepository::class;
// Add the repository of cluster role bindings. // Add the repository of cluster role bindings.
$this->map['clusterRoleBindings'] = K8sClusterRoleBindingRepository::class; $this->map['clusterRoleBindings'] = ClusterRoleBindingRepository::class;
// Add the repository of storage classes.
$this->map['storageClasses'] = K8sStorageClassRepository::class;
// Add the repository of K8s StatefulSets. // Change the repository of K8s LimitRanges.
$this->map['statefulSets'] = K8sStatefulSetRepository::class; $this->map['limitRanges'] = LimitRangeRepository::class;
// Add the repository of api services.
$this->map['apiServices'] = K8sApiServiceRepository::class;
// Add the repository of K8s ServiceAccounts.
$this->map['serviceAccounts'] = K8sServiceAccountRepository::class;
// Add the repository of K8s ReplicaSets. // Add the repository of metrics nodes.
$this->map['replicaSets'] = K8sReplicaSetRepository::class; $this->map['metricsNodes'] = MetricsNodeRepository::class;
// Add the repository of K8s DaemonSets. // Add the repository of metrics pods.
$this->map['daemonSets'] = K8sDaemonSetRepository::class; $this->map['metricsPods'] = MetricsPodRepository::class;
// Add the repository of priority classes. // Add the repository of priority classes.
$this->map['priorityClasses'] = K8sPriorityClassRepository::class; $this->map['priorityClasses'] = PriorityClassRepository::class;
// Change the repository of quotas.
$this->map['quotas'] = K8sQuotaRepository::class;
// Add the repository of horizontal pod autoscalers. // Add the repository of storage classes.
$this->map['horizontalPodAutoscaler'] = K8sHorizontalPodAutoscalerRepository::class; $this->map['storageClasses'] = StorageClassRepository::class;
// Add the repository of persistent volumes. // Add the repository of K8s StatefulSets.
$this->map['persistentVolume'] = K8sPersistentVolumeRepository::class; $this->map['statefulSets'] = StatefulSetRepository::class;
} }
} }
...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model; ...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model;
/** /**
* K8s api services model. * K8s api services model.
*/ */
class K8sApiServiceModel extends Model { class ApiService extends Model {
/** /**
* The api version. * The api version.
......
...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model; ...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model;
/** /**
* K8s cluster roles model. * K8s cluster roles model.
*/ */
class K8sClusterRoleModel extends Model { class ClusterRole extends Model {
/** /**
* The api version. * The api version.
......
...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model; ...@@ -7,7 +7,7 @@ use Maclof\Kubernetes\Models\Model;
/** /**
* K8s cluster role bindings model. * K8s cluster role bindings model.
*/ */
class K8sClusterRoleBindingModel extends Model { class ClusterRoleBinding extends Model {
/** /**
* The api version. * The api version.
......
<?php
namespace Drupal\k8s\Service\K8sClientExtension\Models;
use Maclof\Kubernetes\Models\Model;
/**
* K8s DaemonSet model.
*/
class K8sDaemonSetModel extends Model {
/**
* The api version.
*
* @var string
*/
protected string $apiVersion = 'apps/v1';
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment