Files
ubicloud/routes/project/object_info.rb
2025-08-01 04:18:57 +09:00

28 lines
913 B
Ruby

# frozen_string_literal: true
class Clover
type_ds_perm_map = {
"fw" => [:firewalls_dataset, "Firewall:view"],
"kc" => [:kubernetes_clusters_dataset, "KubernetesCluster:view"],
"1b" => [:load_balancers_dataset, "LoadBalancer:view"],
"pg" => [:postgres_resources_dataset, "Postgres:view"],
"ps" => [:private_subnets_dataset, "PrivateSubnet:view"],
"vm" => [:vms_dataset, "Vm:view"]
}.freeze
type_ds_perm_map.each_value(&:freeze)
hash_branch(:project_prefix, "object-info") do |r|
r.get(api?, UbiCli::OBJECT_INFO_REGEXP) do |ubid, type|
ds_method, perm = type_ds_perm_map[type]
if (object = dataset_authorize(@project.send(ds_method), perm).first(id: UBID.to_uuid(ubid)))
{
"type" => object.class.table_name.to_s.tr("_", " "),
"location" => object.display_location,
"name" => object.name
}
end
end
end
end