Beispiel #1
0
  private IaasProvider getIaasProvider(final OMNode item, List<IaasProvider> iaases) {

    IaasProvider iaas = null;

    if (item.getType() == OMNode.ELEMENT_NODE) {

      OMElement iaasElt = (OMElement) item;

      if (iaases != null) {
        // check whether this is a reference to a predefined IaaS.
        for (IaasProvider iaasProvider : iaases) {
          if (iaasProvider
              .getType()
              .equals(
                  iaasElt
                      .getAttribute(new QName(CloudControllerConstants.TYPE_ATTR))
                      .getAttributeValue())) {
            iaas = new IaasProvider(iaasProvider);
            break;
          }
        }
      }

      if (iaas == null) {
        iaas = new IaasProvider();
      }

      if (iaas.getType() == null) {
        iaas.setType(
            iaasElt
                .getAttribute(new QName(CloudControllerConstants.TYPE_ATTR))
                .getAttributeValue());
      }

      if ("".equals(iaas.getType())) {
        String msg =
            "'"
                + CloudControllerConstants.IAAS_PROVIDER_ELEMENT
                + "' element's '"
                + CloudControllerConstants.TYPE_ATTR
                + "' attribute should be specified!";

        handleException(msg);
      }

      // this is not mandatory
      String name =
          (iaasElt.getAttribute(new QName(CloudControllerConstants.NAME_ATTR)) == null)
              ? iaas.getName()
              : iaasElt.getAttributeValue(new QName(CloudControllerConstants.NAME_ATTR));

      iaas.setName(name);

      String xpath = CloudControllerConstants.IAAS_PROVIDER_ELEMENT_XPATH;

      // load other elements
      loadClassName(iaas, iaasElt);
      loadMaxInstanceLimit(iaas, iaasElt);
      loadProperties(iaasElt, iaas.getProperties());
      loadTemplate(iaas, iaasElt);
      loadScalingOrders(iaas, iaasElt);
      loadProvider(iaas, iaasElt);
      loadIdentity(iaas, iaasElt);
      loadCredentials(iaas, iaasElt, xpath);
    }

    return iaas;
  }