1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

Feature #2665: Proxy group, acl, and zone RM methods

This commit is contained in:
Carlos Martín 2014-01-23 11:31:51 +01:00
parent abf70de94c
commit 92eb10fe7c

View File

@ -253,14 +253,6 @@ void RequestManager::register_xml_methods()
{
Nebula& nebula = Nebula::instance();
// User Methods
xmlrpc_c::methodPtr user_set_quota(new UserSetQuota());
// Group Methods
xmlrpc_c::methodPtr group_set_quota(new GroupSetQuota());
xmlrpc_c::methodPtr group_add_provider(new GroupAddProvider());
xmlrpc_c::methodPtr group_del_provider(new GroupDelProvider());
// VMTemplate Methods
xmlrpc_c::methodPtr template_instantiate(new VMTemplateInstantiate());
@ -298,19 +290,16 @@ void RequestManager::register_xml_methods()
xmlrpc_c::methodPtr datastore_update(new DatastoreUpdateTemplate());
xmlrpc_c::methodPtr doc_update(new DocumentUpdateTemplate());
xmlrpc_c::methodPtr cluster_update(new ClusterUpdateTemplate());
xmlrpc_c::methodPtr zone_update(new ZoneUpdateTemplate());
// Allocate Methods
xmlrpc_c::methodPtr vm_allocate(new VirtualMachineAllocate());
xmlrpc_c::methodPtr image_allocate(new ImageAllocate());
xmlrpc_c::methodPtr vn_allocate(new VirtualNetworkAllocate());
xmlrpc_c::methodPtr group_allocate(new GroupAllocate());
xmlrpc_c::methodPtr template_allocate(new TemplateAllocate());
xmlrpc_c::methodPtr host_allocate(new HostAllocate());
xmlrpc_c::methodPtr datastore_allocate(new DatastoreAllocate());
xmlrpc_c::methodPtr cluster_allocate(new ClusterAllocate());
xmlrpc_c::methodPtr doc_allocate(new DocumentAllocate());
xmlrpc_c::methodPtr zone_allocate(new ZoneAllocate());
// Clone Methods
xmlrpc_c::methodPtr template_clone(new VMTemplateClone());
@ -319,31 +308,24 @@ void RequestManager::register_xml_methods()
// Delete Methods
xmlrpc_c::methodPtr host_delete(new HostDelete());
xmlrpc_c::methodPtr template_delete(new TemplateDelete());
xmlrpc_c::methodPtr group_delete(new GroupDelete());
xmlrpc_c::methodPtr vn_delete(new VirtualNetworkDelete());
xmlrpc_c::methodPtr image_delete(new ImageDelete());
xmlrpc_c::methodPtr datastore_delete(new DatastoreDelete());
xmlrpc_c::methodPtr cluster_delete(new ClusterDelete());
xmlrpc_c::methodPtr doc_delete(new DocumentDelete());
xmlrpc_c::methodPtr zone_delete(new ZoneDelete());
// Info Methods
xmlrpc_c::methodPtr vm_info(new VirtualMachineInfo());
xmlrpc_c::methodPtr host_info(new HostInfo());
xmlrpc_c::methodPtr template_info(new TemplateInfo());
xmlrpc_c::methodPtr group_info(new GroupInfo());
xmlrpc_c::methodPtr vn_info(new VirtualNetworkInfo());
xmlrpc_c::methodPtr user_info(new UserInfo());
xmlrpc_c::methodPtr image_info(new ImageInfo());
xmlrpc_c::methodPtr datastore_info(new DatastoreInfo());
xmlrpc_c::methodPtr cluster_info(new ClusterInfo());
xmlrpc_c::methodPtr doc_info(new DocumentInfo());
xmlrpc_c::methodPtr zone_info(new ZoneInfo());
// PoolInfo Methods
xmlrpc_c::methodPtr hostpool_info(new HostPoolInfo());
xmlrpc_c::methodPtr grouppool_info(new GroupPoolInfo());
xmlrpc_c::methodPtr userpool_info(new UserPoolInfo());
xmlrpc_c::methodPtr datastorepool_info(new DatastorePoolInfo());
xmlrpc_c::methodPtr vm_pool_info(new VirtualMachinePoolInfo());
xmlrpc_c::methodPtr template_pool_info(new TemplatePoolInfo());
@ -351,7 +333,6 @@ void RequestManager::register_xml_methods()
xmlrpc_c::methodPtr imagepool_info(new ImagePoolInfo());
xmlrpc_c::methodPtr clusterpool_info(new ClusterPoolInfo());
xmlrpc_c::methodPtr docpool_info(new DocumentPoolInfo());
xmlrpc_c::methodPtr zonepool_info(new ZonePoolInfo());
// Host Methods
xmlrpc_c::methodPtr host_enable(new HostEnable());
@ -380,11 +361,6 @@ void RequestManager::register_xml_methods()
xmlrpc_c::methodPtr datastore_chmod(new DatastoreChmod());
xmlrpc_c::methodPtr doc_chmod(new DocumentChmod());
// ACL Methods
xmlrpc_c::methodPtr acl_addrule(new AclAddRule());
xmlrpc_c::methodPtr acl_delrule(new AclDelRule());
xmlrpc_c::methodPtr acl_info(new AclInfo());
// Cluster Methods
xmlrpc_c::methodPtr cluster_addhost(new ClusterAddHost());
xmlrpc_c::methodPtr cluster_delhost(new ClusterDelHost());
@ -397,12 +373,6 @@ void RequestManager::register_xml_methods()
xmlrpc_c::methodPtr system_version(new SystemVersion());
xmlrpc_c::methodPtr system_config(new SystemConfig());
xmlrpc_c::methodPtr user_get_default_quota(new UserQuotaInfo());
xmlrpc_c::methodPtr user_set_default_quota(new UserQuotaUpdate());
xmlrpc_c::methodPtr group_get_default_quota(new GroupQuotaInfo());
xmlrpc_c::methodPtr group_set_default_quota(new GroupQuotaUpdate());
// Rename Methods
xmlrpc_c::methodPtr vm_rename(new VirtualMachineRename());
xmlrpc_c::methodPtr template_rename(new TemplateRename());
@ -465,6 +435,38 @@ void RequestManager::register_xml_methods()
RequestManagerRegistry.addMethod("one.hostpool.monitoring", host_pool_monitoring);
/* Group related methods */
xmlrpc_c::method * group_allocate_pt;
xmlrpc_c::method * group_delete_pt;
xmlrpc_c::method * group_add_provider_pt;
xmlrpc_c::method * group_del_provider_pt;
if (nebula.is_federation_slave())
{
group_allocate_pt = new RequestManagerProxy("one.group.allocate");
group_delete_pt = new RequestManagerProxy("one.group.delete");
group_add_provider_pt = new RequestManagerProxy("one.group.addprovider");
group_del_provider_pt = new RequestManagerProxy("one.group.delprovider");
}
else
{
group_allocate_pt = new GroupAllocate();
group_delete_pt = new GroupDelete();
group_add_provider_pt = new GroupAddProvider();
group_del_provider_pt = new GroupDelProvider();
}
xmlrpc_c::methodPtr group_allocate(group_allocate_pt);
xmlrpc_c::methodPtr group_delete(group_delete_pt);
xmlrpc_c::methodPtr group_add_provider(group_add_provider_pt);
xmlrpc_c::methodPtr group_del_provider(group_del_provider_pt);
xmlrpc_c::methodPtr group_info(new GroupInfo());
xmlrpc_c::methodPtr group_set_quota(new GroupSetQuota());
xmlrpc_c::methodPtr grouppool_info(new GroupPoolInfo());
xmlrpc_c::methodPtr group_get_default_quota(new GroupQuotaInfo());
xmlrpc_c::methodPtr group_set_default_quota(new GroupQuotaUpdate());
RequestManagerRegistry.addMethod("one.group.allocate", group_allocate);
RequestManagerRegistry.addMethod("one.group.delete", group_delete);
RequestManagerRegistry.addMethod("one.group.info", group_info);
@ -535,6 +537,12 @@ void RequestManager::register_xml_methods()
xmlrpc_c::methodPtr user_del_group(user_del_group_pt);
xmlrpc_c::methodPtr user_change_auth(user_change_auth_pt);
xmlrpc_c::methodPtr user_info(new UserInfo());
xmlrpc_c::methodPtr user_set_quota(new UserSetQuota());
xmlrpc_c::methodPtr userpool_info(new UserPoolInfo());
xmlrpc_c::methodPtr user_get_default_quota(new UserQuotaInfo());
xmlrpc_c::methodPtr user_set_default_quota(new UserQuotaUpdate());
RequestManagerRegistry.addMethod("one.user.allocate", user_allocate);
RequestManagerRegistry.addMethod("one.user.update", user_update);
RequestManagerRegistry.addMethod("one.user.delete", user_delete);
@ -567,6 +575,26 @@ void RequestManager::register_xml_methods()
RequestManagerRegistry.addMethod("one.imagepool.info", imagepool_info);
/* ACL related methods */
xmlrpc_c::method * acl_addrule_pt;
xmlrpc_c::method * acl_delrule_pt;
if (nebula.is_federation_slave())
{
acl_addrule_pt = new RequestManagerProxy("one.acl.addrule");
acl_delrule_pt = new RequestManagerProxy("one.acl.delrule");
}
else
{
acl_addrule_pt = new AclAddRule();
acl_delrule_pt = new AclDelRule();
}
xmlrpc_c::methodPtr acl_addrule(acl_addrule_pt);
xmlrpc_c::methodPtr acl_delrule(acl_delrule_pt);
xmlrpc_c::methodPtr acl_info(new AclInfo());
RequestManagerRegistry.addMethod("one.acl.addrule", acl_addrule);
RequestManagerRegistry.addMethod("one.acl.delrule", acl_delrule);
RequestManagerRegistry.addMethod("one.acl.info", acl_info);
@ -611,6 +639,31 @@ void RequestManager::register_xml_methods()
RequestManagerRegistry.addMethod("one.documentpool.info",docpool_info);
/* Zone related methods */
xmlrpc_c::method * zone_allocate_pt;
xmlrpc_c::method * zone_update_pt;
xmlrpc_c::method * zone_delete_pt;
if (nebula.is_federation_slave())
{
zone_allocate_pt = new RequestManagerProxy("one.zone.allocate");
zone_update_pt = new RequestManagerProxy("one.zone.update");
zone_delete_pt = new RequestManagerProxy("one.zone.delete");
}
else
{
zone_allocate_pt = new ZoneAllocate();
zone_update_pt = new ZoneUpdateTemplate();
zone_delete_pt = new ZoneDelete();
}
xmlrpc_c::methodPtr zone_allocate(zone_allocate_pt);
xmlrpc_c::methodPtr zone_update(zone_update_pt);
xmlrpc_c::methodPtr zone_delete(zone_delete_pt);
xmlrpc_c::methodPtr zone_info(new ZoneInfo());
xmlrpc_c::methodPtr zonepool_info(new ZonePoolInfo());
RequestManagerRegistry.addMethod("one.zone.allocate",zone_allocate);
RequestManagerRegistry.addMethod("one.zone.update", zone_update);
RequestManagerRegistry.addMethod("one.zone.delete", zone_delete);