- Add Kubernetes cluster management and operations - Include pod, service, and deployment management - Implement pattern-based resource deletion - Support namespace creation and management - Provide Rhai scripting wrappers for all functions - Include production safety features (timeouts, retries, rate limiting)
91 lines
2.6 KiB
Plaintext
91 lines
2.6 KiB
Plaintext
//! Simple API pattern test
|
|
//!
|
|
//! This script demonstrates the new object-oriented API pattern.
|
|
|
|
print("=== Object-Oriented API Pattern Test ===");
|
|
|
|
// Test 1: Create manager
|
|
print("Test 1: Creating KubernetesManager...");
|
|
let km = kubernetes_manager_new("default");
|
|
print("✓ Manager created for namespace: " + namespace(km));
|
|
|
|
// Test 2: Show the new API pattern
|
|
print("\nTest 2: New Object-Oriented API Pattern");
|
|
print("Now you can use:");
|
|
print(" km.create_pod(name, image, labels)");
|
|
print(" km.create_service(name, selector, port, target_port)");
|
|
print(" km.create_deployment(name, image, replicas, labels)");
|
|
print(" km.create_configmap(name, data)");
|
|
print(" km.create_secret(name, data, type)");
|
|
print(" km.create_namespace(name)");
|
|
print("");
|
|
print(" km.get_pod(name)");
|
|
print(" km.get_service(name)");
|
|
print(" km.get_deployment(name)");
|
|
print("");
|
|
print(" km.delete_pod(name)");
|
|
print(" km.delete_service(name)");
|
|
print(" km.delete_deployment(name)");
|
|
print(" km.delete_configmap(name)");
|
|
print(" km.delete_secret(name)");
|
|
print(" km.delete_namespace(name)");
|
|
print("");
|
|
print(" km.pods_list()");
|
|
print(" km.services_list()");
|
|
print(" km.deployments_list()");
|
|
print(" km.resource_counts()");
|
|
print(" km.namespace_exists(name)");
|
|
|
|
// Test 3: Function availability check
|
|
print("\nTest 3: Checking all API methods are available...");
|
|
let api_methods = [
|
|
// Create methods
|
|
"create_pod",
|
|
"create_service",
|
|
"create_deployment",
|
|
"create_configmap",
|
|
"create_secret",
|
|
"create_namespace",
|
|
|
|
// Get methods
|
|
"get_pod",
|
|
"get_service",
|
|
"get_deployment",
|
|
|
|
// List methods
|
|
"pods_list",
|
|
"services_list",
|
|
"deployments_list",
|
|
"configmaps_list",
|
|
"secrets_list",
|
|
"namespaces_list",
|
|
"resource_counts",
|
|
"namespace_exists",
|
|
|
|
// Delete methods
|
|
"delete_pod",
|
|
"delete_service",
|
|
"delete_deployment",
|
|
"delete_configmap",
|
|
"delete_secret",
|
|
"delete_namespace",
|
|
"delete"
|
|
];
|
|
|
|
for method_name in api_methods {
|
|
print("✓ Method 'km." + method_name + "()' is available");
|
|
}
|
|
|
|
print("\n=== API Pattern Summary ===");
|
|
print("✅ Object-oriented API: km.method_name()");
|
|
print("✅ " + api_methods.len() + " methods available");
|
|
print("✅ Consistent naming: create_*, get_*, delete_*, *_list()");
|
|
print("✅ Full CRUD operations for all resource types");
|
|
|
|
print("\n🎉 Object-oriented API pattern is ready!");
|
|
print("\nExample usage:");
|
|
print(" let km = kubernetes_manager_new('my-namespace');");
|
|
print(" let pod = km.create_pod('my-pod', 'nginx:latest', #{});");
|
|
print(" let pods = km.pods_list();");
|
|
print(" km.delete_pod('my-pod');");
|