public StatusBean delete(JsonNode projectData) {
    StatusBean statusBean = new StatusBean();
    Integer userID = Integer.parseInt(projectData.get("userID").getTextValue());
    Integer projectID = Integer.parseInt(projectData.get("projectID").getTextValue());
    String location = Utilities.getInstance().fetchActiveProjectDirectory(userID);

    try {
      ProjectBean project = projectDao.queryForId(projectID);
      project.setIsDisabled(true);
      projectDao.update(project);
      List<MachineConfigurationBean> machineConfigList =
          MachineConfigDAOManager.getInstance().retireveBoxesForProject(projectID.toString());

      for (MachineConfigurationBean machineConfig : machineConfigList) {
        MachineConfigDAOManager.getInstance().delete(machineConfig.getMachineID().toString());
        String vagrantCommand = "vagrant destroy " + machineConfig.getVagrantID();
        VagrantCommandProcessor shellProcessor = new VagrantCommandProcessor();
        try {
          shellProcessor.executeVagrantFile(
              location, vagrantCommand, userID, new VagrantOutputStream());
        } catch (IOException e) {
          statusBean.setStatusCode(1);
          statusBean.setStatusMessage("error in destroting box" + e.getMessage());
        } catch (InterruptedException e) {
          statusBean.setStatusCode(1);
          statusBean.setStatusMessage("error in destroting box" + e.getMessage());
        }
      }

    } catch (SQLException e) {
      logger.error("Error deleting a project : " + e.getMessage());
      statusBean.setStatusCode(1);
      statusBean.setStatusMessage("Error deleting  a project : " + e.getMessage());
      e.printStackTrace();
    }
    statusBean.setStatusCode(0);
    statusBean.setStatusMessage("Project deleted successfully");
    return statusBean;
  }
  @Override
  public StatusBean create(JsonNode newData) {
    ProjectBean projectBean = new ProjectBean();
    Gson projectData = new GsonBuilder().setDateFormat("yyyy'-'MM'-'dd HH':'mm':'ss").create();
    projectBean = projectData.fromJson(newData.toString(), ProjectBean.class);

    StatusBean statusBean = new StatusBean();

    try {

      int rowsUpdated = projectDao.create(projectBean);

      // if(rowsUpdated == 1)
      // Utilities.getInstance().changeActiveDirectory(projectBean.getProjectId());
      UserDAOManager.getInstance()
          .populateMappingBean(projectBean, newData.get("owner").getValueAsText());
      statusBean.setStatusCode(0);
      statusBean.setData(projectBean);
      Utilities.getInstance().initializeDirectory(projectBean.getProjectID());
      String scriptDir =
          Utilities.getInstance().constructProjectDirectory(projectBean.getProjectID())
              + OSProperties.getInstance().getOSFileSeparator()
              + OSProperties.getInstance().getScriptsDirName()
              + OSProperties.getInstance().getOSFileSeparator();
      Utilities.getInstance().checkIfDirExists(new File(scriptDir));
      //			File puppetScriptFile = new File(getClass().getResource("/puppet.sh").toURI());
      InputStream puppetScriptStream = getClass().getResourceAsStream("/puppet.sh");
      File puppetFile = new File("puppet.sh");
      OutputStream outputStream = new FileOutputStream(puppetFile);
      IOUtils.copy(puppetScriptStream, outputStream);

      Utilities.getInstance().copyFile(puppetFile, new File(scriptDir + "puppet.sh"));

      String nodeFileLoc =
          Utilities.getInstance().constructProjectDirectory(projectBean.getProjectID())
              + OSProperties.getInstance().getOSFileSeparator()
              + OSProperties.getInstance().getManifestsDirName()
              + OSProperties.getInstance().getOSFileSeparator()
              + "site.pp";
      boolean nodeFile = new File(nodeFileLoc).createNewFile();

      Integer providerID =
          ProviderDAOManager.getInstance()
              .providerDao
              .queryForId(projectBean.getProviderType())
              .getProviderID();
      ProjectProviderMappingBean projectProvider =
          new ProjectProviderMappingBean(projectBean.getProjectID(), providerID);
      projectProviderMappingDao.create(projectProvider);
      String providerName =
          ProviderDAOManager.getInstance()
              .providerDao
              .queryForId(projectBean.getProviderType())
              .getName();
      if (providerName.equalsIgnoreCase(CommonProperties.getInstance().getDockerProvider())) {
        Utilities.getInstance().initializeDockerVagrantFile(projectBean.getProjectID());
      } else if (providerName.equalsIgnoreCase(AwsProjectDAOManager.PROVIDER_NAME)) {
        AwsProjectDAOManager.getInstance().create(newData, projectBean);
      }
    } catch (SQLException e) {
      logger.error("Error creating a new project : " + e.getMessage());
      statusBean.setStatusCode(1);
      statusBean.setStatusMessage("Error creating project : " + e.getMessage());

    } catch (IOException e) {
      e.printStackTrace();
    }
    return statusBean;
  }