Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Capitalize enum class.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 6 May 2021 21:38:41 +0000 (23:38 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Fri, 7 May 2021 08:29:32 +0000 (10:29 +0200)
include/simgrid/s4u/VirtualMachine.hpp
src/bindings/java/jmsg_vm.cpp
src/plugins/vm/VirtualMachineImpl.cpp
src/plugins/vm/VirtualMachineImpl.hpp
src/plugins/vm/VmLiveMigration.cpp
src/plugins/vm/s4u_VirtualMachine.cpp

index d6a9878..ecfeb1e 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <simgrid/forward.h>
 #include <simgrid/s4u/Host.hpp>
+#include <xbt/utility.hpp>
 
 namespace simgrid {
 namespace s4u {
@@ -34,12 +35,14 @@ public:
   VirtualMachine& operator=(VirtualMachine const&) = delete;
 #endif
 
-  enum class state {
+  // enum class State { ... }
+  XBT_DECLARE_ENUM_CLASS(State,
     CREATED, /**< created, but not yet started */
     RUNNING,
     SUSPENDED, /**< Suspend/resume does not involve disk I/O, so we assume there is no transition states. */
     DESTROYED
-  };
+  );
+  using state XBT_ATTRIB_DEPRECATED_v332("Please use VirtualMachine::State") = State;
 
   vm::VirtualMachineImpl* get_vm_impl() const { return pimpl_vm_; }
   void start();
@@ -54,7 +57,7 @@ public:
   VirtualMachine* set_ramsize(size_t ramsize);
   VirtualMachine* set_bound(double bound);
 
-  VirtualMachine::state get_state() const;
+  State get_state() const;
   static xbt::signal<void(VirtualMachine const&)> on_start;
   static xbt::signal<void(VirtualMachine const&)> on_started;
   static xbt::signal<void(VirtualMachine const&)> on_shutdown;
index 9723d9a..ecb41ca 100644 (file)
@@ -90,7 +90,7 @@ JNIEXPORT jobjectArray JNICALL Java_org_simgrid_msg_VM_all(JNIEnv* env, jclass c
 
   for (size_t i = 0; i < host_count; i++) {
     const auto* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(hosts[i]);
-    if (vm != nullptr && vm->get_state() != simgrid::s4u::VirtualMachine::state::DESTROYED) {
+    if (vm != nullptr && vm->get_state() != simgrid::s4u::VirtualMachine::State::DESTROYED) {
       auto jvm = static_cast<jobject>(vm->extension(JAVA_HOST_LEVEL));
       vms.push_back(jvm);
     }
index ce8a83d..19d1847 100644 (file)
@@ -153,7 +153,7 @@ double VMModel::next_occurring_event(double now)
 
   /* iterate for all virtual machines */
   for (s4u::VirtualMachine* const& ws_vm : VirtualMachineImpl::allVms_) {
-    if (ws_vm->get_state() == s4u::VirtualMachine::state::SUSPENDED) // Ignore suspended VMs
+    if (ws_vm->get_state() == s4u::VirtualMachine::State::SUSPENDED) // Ignore suspended VMs
       continue;
 
     const kernel::resource::Cpu* cpu = ws_vm->pimpl_cpu;
@@ -209,7 +209,7 @@ VirtualMachineImpl::~VirtualMachineImpl()
 
 void VirtualMachineImpl::suspend(smx_actor_t issuer)
 {
-  if (get_state() != s4u::VirtualMachine::state::RUNNING)
+  if (get_state() != s4u::VirtualMachine::State::RUNNING)
     throw VmFailureException(XBT_THROW_POINT,
                              xbt::string_printf("Cannot suspend VM %s: it is not running.", piface_->get_cname()));
   if (issuer->get_host() == piface_)
@@ -227,12 +227,12 @@ void VirtualMachineImpl::suspend(smx_actor_t issuer)
 
   XBT_DEBUG("suspend all actors on the VM done done");
 
-  vm_state_ = s4u::VirtualMachine::state::SUSPENDED;
+  vm_state_ = s4u::VirtualMachine::State::SUSPENDED;
 }
 
 void VirtualMachineImpl::resume()
 {
-  if (get_state() != s4u::VirtualMachine::state::SUSPENDED)
+  if (get_state() != s4u::VirtualMachine::State::SUSPENDED)
     throw VmFailureException(XBT_THROW_POINT,
                              xbt::string_printf("Cannot resume VM %s: it was not suspended", piface_->get_cname()));
 
@@ -245,7 +245,7 @@ void VirtualMachineImpl::resume()
     actor.resume();
   });
 
-  vm_state_ = s4u::VirtualMachine::state::RUNNING;
+  vm_state_ = s4u::VirtualMachine::State::RUNNING;
 }
 
 /** @brief Power off a VM.
@@ -257,23 +257,9 @@ void VirtualMachineImpl::resume()
  */
 void VirtualMachineImpl::shutdown(smx_actor_t issuer)
 {
-  if (get_state() != s4u::VirtualMachine::state::RUNNING) {
-    const char* stateName;
-    switch (get_state()) {
-      case s4u::VirtualMachine::state::CREATED:
-        stateName = "created, but not yet started";
-        break;
-      case s4u::VirtualMachine::state::SUSPENDED:
-        stateName = "suspended";
-        break;
-      case s4u::VirtualMachine::state::DESTROYED:
-        stateName = "destroyed";
-        break;
-      default: /* SURF_VM_STATE_RUNNING or unexpected values */
-        THROW_IMPOSSIBLE;
-    }
-    XBT_VERB("Shutting down the VM %s even if it's not running but %s", piface_->get_cname(), stateName);
-  }
+  if (get_state() != s4u::VirtualMachine::State::RUNNING)
+    XBT_VERB("Shutting down the VM %s even if it's not running but in state %s", piface_->get_cname(),
+             s4u::VirtualMachine::to_c_str(get_state()));
 
   XBT_DEBUG("shutdown VM %s, that contains %zu actors", piface_->get_cname(), get_actor_count());
 
@@ -283,7 +269,7 @@ void VirtualMachineImpl::shutdown(smx_actor_t issuer)
     issuer->kill(&actor);
   });
 
-  set_state(s4u::VirtualMachine::state::DESTROYED);
+  set_state(s4u::VirtualMachine::State::DESTROYED);
 
   /* FIXME: we may have to do something at the surf layer, e.g., vcpu action */
 }
index 031c355..d013fac 100644 (file)
@@ -54,8 +54,8 @@ public:
   sg_size_t get_ramsize() const { return ramsize_; }
   void set_ramsize(sg_size_t ramsize) { ramsize_ = ramsize; }
 
-  s4u::VirtualMachine::state get_state() const { return vm_state_; }
-  void set_state(s4u::VirtualMachine::state state) { vm_state_ = state; }
+  s4u::VirtualMachine::State get_state() const { return vm_state_; }
+  void set_state(s4u::VirtualMachine::State state) { vm_state_ = state; }
 
   unsigned int get_core_amount() const { return core_amount_; }
   kernel::resource::Action* get_action() const { return action_; }
@@ -82,7 +82,7 @@ private:
   unsigned int core_amount_;
   double user_bound_                   = std::numeric_limits<double>::max();
   size_t ramsize_                      = 0;
-  s4u::VirtualMachine::state vm_state_ = s4u::VirtualMachine::state::CREATED;
+  s4u::VirtualMachine::State vm_state_ = s4u::VirtualMachine::State::CREATED;
   bool is_migrating_                   = false;
 };
 
index 77d9b5c..f0ec902 100644 (file)
@@ -41,7 +41,7 @@ void MigrationRx::operator()()
 
   /* Update the vm location */
   /* precopy migration makes the VM temporally paused */
-  xbt_assert(vm_->get_state() == s4u::VirtualMachine::state::SUSPENDED);
+  xbt_assert(vm_->get_state() == s4u::VirtualMachine::State::SUSPENDED);
 
   /* Update the vm location and resume it */
   vm_->set_pm(dst_pm_);
@@ -323,7 +323,7 @@ void sg_vm_migrate(simgrid::s4u::VirtualMachine* vm, simgrid::s4u::Host* dst_pm)
     throw simgrid::VmFailureException(
         XBT_THROW_POINT, simgrid::xbt::string_printf("Cannot migrate VM '%s' to host '%s', which is offline.",
                                                      vm->get_cname(), dst_pm->get_cname()));
-  if (vm->get_state() != simgrid::s4u::VirtualMachine::state::RUNNING)
+  if (vm->get_state() != simgrid::s4u::VirtualMachine::State::RUNNING)
     throw simgrid::VmFailureException(
         XBT_THROW_POINT,
         simgrid::xbt::string_printf("Cannot migrate VM '%s' that is not running yet.", vm->get_cname()));
index 88d7f49..2a7fcd3 100644 (file)
@@ -95,7 +95,7 @@ void VirtualMachine::start()
       }
     }
 
-    this->pimpl_vm_->set_state(VirtualMachine::state::RUNNING);
+    this->pimpl_vm_->set_state(State::RUNNING);
   });
 
   on_started(*this);
@@ -146,7 +146,7 @@ VirtualMachine* VirtualMachine::set_pm(simgrid::s4u::Host* pm)
   return this;
 }
 
-VirtualMachine::state VirtualMachine::get_state() const
+VirtualMachine::State VirtualMachine::get_state() const
 {
   return kernel::actor::simcall([this]() { return pimpl_vm_->get_state(); });
 }
@@ -242,19 +242,19 @@ void sg_vm_set_bound(sg_vm_t vm, double bound)
 /** @brief Returns whether the given VM has just created, not running. */
 int sg_vm_is_created(const_sg_vm_t vm)
 {
-  return vm->get_state() == simgrid::s4u::VirtualMachine::state::CREATED;
+  return vm->get_state() == simgrid::s4u::VirtualMachine::State::CREATED;
 }
 
 /** @brief Returns whether the given VM is currently running */
 int sg_vm_is_running(const_sg_vm_t vm)
 {
-  return vm->get_state() == simgrid::s4u::VirtualMachine::state::RUNNING;
+  return vm->get_state() == simgrid::s4u::VirtualMachine::State::RUNNING;
 }
 
 /** @brief Returns whether the given VM is currently suspended, not running. */
 int sg_vm_is_suspended(const_sg_vm_t vm)
 {
-  return vm->get_state() == simgrid::s4u::VirtualMachine::state::SUSPENDED;
+  return vm->get_state() == simgrid::s4u::VirtualMachine::State::SUSPENDED;
 }
 
 /** @brief Start a vm (i.e., boot the guest operating system)