X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1300b88c419e071782315f75655a580b545c9dd3..d44e911ae45609418de22c72114e85c4e031fcf4:/src/surf/workstation_interface.cpp?ds=sidebyside diff --git a/src/surf/workstation_interface.cpp b/src/surf/workstation_interface.cpp index cd222049a1..9d93ab5296 100644 --- a/src/surf/workstation_interface.cpp +++ b/src/surf/workstation_interface.cpp @@ -49,7 +49,7 @@ void WorkstationModel::adjustWeightOfDummyCpuActions() /* iterate for all virtual machines */ for (WorkstationVMModel::vm_list_t::iterator iter = WorkstationVMModel::ws_vms.begin(); - iter != WorkstationVMModel::ws_vms.begin(); ++iter) { + iter != WorkstationVMModel::ws_vms.end(); ++iter) { WorkstationVMPtr ws_vm = &*iter; CpuCas01Ptr cpu_cas01 = static_cast(ws_vm->p_cpu); @@ -170,7 +170,7 @@ StoragePtr Workstation::findStorageOnMountList(const char* mount) return st; } -xbt_dict_t Workstation::getStorageList() +xbt_dict_t Workstation::getMountedStorageList() { s_mount_t mnt; unsigned int i; @@ -184,6 +184,24 @@ xbt_dict_t Workstation::getStorageList() return storage_list; } +xbt_dict_t Workstation::getAttachedStorageList() +{ + xbt_lib_cursor_t cursor; + char *key; + void **data; + xbt_dict_t res = xbt_dict_new_homogeneous(NULL); + xbt_lib_foreach(storage_lib, cursor, key, data) { + if(routing_get_network_element_type(key) == SURF_STORAGE_LEVEL) { + xbt_dictelm_t elm = xbt_dict_cursor_get_elm(cursor); + if ( (static_cast(surf_storage_resource_priv(surf_storage_resource_by_name((const char*)elm))))->p_attach == this->getName()) + xbt_dict_set(res,(const char*)elm,xbt_lib_get_level(elm,MSG_STORAGE_LEVEL),NULL); + } + } + return res; + +} + + ActionPtr Workstation::open(const char* mount, const char* path) { StoragePtr st = findStorageOnMountList(mount); XBT_DEBUG("OPEN on disk '%s'", st->getName()); @@ -302,7 +320,7 @@ xbt_dynar_t Workstation::getVms() /* iterate for all virtual machines */ for (WorkstationVMModel::vm_list_t::iterator iter = WorkstationVMModel::ws_vms.begin(); - iter != WorkstationVMModel::ws_vms.begin(); ++iter) { + iter != WorkstationVMModel::ws_vms.end(); ++iter) { WorkstationVMPtr ws_vm = &*iter; if (this == ws_vm-> p_subWs)