diff --git a/include/Vdc.h b/include/Vdc.h index 07e85f38a7..4711402a9a 100644 --- a/include/Vdc.h +++ b/include/Vdc.h @@ -187,6 +187,9 @@ private: set > datastores; set > vnets; + void add_group_rules(int group); + void del_group_rules(int group); + void add_cluster_rules(int group, int zone_id, int cluster_id); void del_cluster_rules(int group, int zone_id, int cluster_id); diff --git a/src/vdc/Vdc.cc b/src/vdc/Vdc.cc index b89a81cfa3..cf0bea58d4 100644 --- a/src/vdc/Vdc.cc +++ b/src/vdc/Vdc.cc @@ -185,7 +185,6 @@ int Vdc::drop(SqlDB * db) { set::const_iterator it; int rc; - string error_msg; rc = PoolObjectSQL::drop(db); @@ -193,7 +192,7 @@ int Vdc::drop(SqlDB * db) { for (it = groups.begin(); it != groups.end(); it++) { - del_group(*it, error_msg); + del_group_rules(*it); } } @@ -421,8 +420,6 @@ int Vdc::from_xml(const string& xml) int Vdc::add_group(int group_id, string& error_msg) { - set >::const_iterator it; - pair::iterator,bool> ret; ret = groups.insert(group_id); @@ -435,25 +432,7 @@ int Vdc::add_group(int group_id, string& error_msg) return -1; } - for (it = clusters.begin(); it != clusters.end(); it++) - { - add_cluster_rules(group_id, it->first, it->second); - } - - for (it = hosts.begin(); it != hosts.end(); it++) - { - add_host_rules(group_id, it->first, it->second); - } - - for (it = datastores.begin(); it != datastores.end(); it++) - { - add_datastore_rules(group_id, it->first, it->second); - } - - for (it = vnets.begin(); it != vnets.end(); it++) - { - add_vnet_rules(group_id, it->first, it->second); - } + add_group_rules(group_id); return 0; } @@ -463,8 +442,6 @@ int Vdc::add_group(int group_id, string& error_msg) int Vdc::del_group(int group_id, string& error_msg) { - set >::const_iterator it; - if( groups.erase(group_id) != 1 ) { ostringstream oss; @@ -473,25 +450,7 @@ int Vdc::del_group(int group_id, string& error_msg) return -1; } - for (it = clusters.begin(); it != clusters.end(); it++) - { - del_cluster_rules(group_id, it->first, it->second); - } - - for (it = hosts.begin(); it != hosts.end(); it++) - { - del_host_rules(group_id, it->first, it->second); - } - - for (it = datastores.begin(); it != datastores.end(); it++) - { - del_datastore_rules(group_id, it->first, it->second); - } - - for (it = vnets.begin(); it != vnets.end(); it++) - { - del_vnet_rules(group_id, it->first, it->second); - } + del_group_rules(group_id); return 0; } @@ -707,6 +666,62 @@ int Vdc::del_vnet(int zone_id, int vnet_id, string& error_msg) /* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */ +void Vdc::add_group_rules(int group_id) +{ + set >::const_iterator it; + + for (it = clusters.begin(); it != clusters.end(); it++) + { + add_cluster_rules(group_id, it->first, it->second); + } + + for (it = hosts.begin(); it != hosts.end(); it++) + { + add_host_rules(group_id, it->first, it->second); + } + + for (it = datastores.begin(); it != datastores.end(); it++) + { + add_datastore_rules(group_id, it->first, it->second); + } + + for (it = vnets.begin(); it != vnets.end(); it++) + { + add_vnet_rules(group_id, it->first, it->second); + } +} + +/* ------------------------------------------------------------------------ */ +/* ------------------------------------------------------------------------ */ + +void Vdc::del_group_rules(int group_id) +{ + set >::const_iterator it; + + for (it = clusters.begin(); it != clusters.end(); it++) + { + del_cluster_rules(group_id, it->first, it->second); + } + + for (it = hosts.begin(); it != hosts.end(); it++) + { + del_host_rules(group_id, it->first, it->second); + } + + for (it = datastores.begin(); it != datastores.end(); it++) + { + del_datastore_rules(group_id, it->first, it->second); + } + + for (it = vnets.begin(); it != vnets.end(); it++) + { + del_vnet_rules(group_id, it->first, it->second); + } +} + +/* ------------------------------------------------------------------------ */ +/* ------------------------------------------------------------------------ */ + void Vdc::add_cluster_rules(int group_id, int zone_id, int cluster_id) { int rc = 0;