/**
   * @see javax.wbem.client.WBEMClient
   * @param subject - a security subject built for authentication on the CIM server
   * @param path - initial search path
   * @return a client ready to work with CIM data
   * @throws GetCimWBEMException if we cannot initialize the client
   */
  public WBEMClient client(final Subject subject, final CIMObjectPath path) {
    WBEMClient client = WBEMClientFactory.getClient(WBEMCLIENT_FORMAT);

    try {

      client.initialize(path, subject, new Locale[] {new Locale("en")});

    } catch (WBEMException e) {
      throw new GetCimWBEMException(e);
    }

    return client;
  }
  public CuraPowerClient(String hostname, String username, String password) {

    try {
      cli = WBEMClientFactory.getClient("CIM-XML");
      Subject subject = new Subject();

      cop = new CIMObjectPath("https", hostname, "5989", "/root/cimv2", null, null);
      cli.initialize(cop, subject, null);

    } catch (WBEMException e) {
      System.out.println(e);
    }
  }
  public String getserverstatus(
      String ipAddress,
      String username,
      String password,
      String namespace,
      String port,
      String protocol,
      String ftag) {

    this.status = "OFFLINE";
    this.ftag = ftag;
    String unsecureClientNameSpace = protocol + "://" + ipAddress + ":" + port + "/" + namespace;

    try {
      CIMObjectPath cns = new CIMObjectPath(unsecureClientNameSpace);
      UserPrincipal up = new UserPrincipal(username);
      PasswordCredential pc = new PasswordCredential(password);

      Subject s = new Subject();
      s.getPrincipals().add(up);
      s.getPrivateCredentials().add(pc);
      this.cc = WBEMClientFactory.getClient("CIM-XML");
      Locale[] l = {Locale.ENGLISH, Locale.CHINESE};
      this.cc.initialize(cns, s, l);
      try {
        this.instanceEnum =
            this.cc.enumerateInstances(
                new CIMObjectPath("CIM_System", namespace), true, false, true, null);
      } catch (WBEMException ce) {

        this.instanceEnum = null;
      }
      if (this.instanceEnum == null) {
        this.status = "OFFLINE";
        // this.ucs.updateCimom(Cimom.STATUS_OFFLINE, cimomId);
      } else if (instanceEnum != null) {
        this.status = "ONLINE";
        // this.ucs.updateCimom(Cimom.STATUS_ONLINE, cimomId);
      }

    } catch (WBEMException ce) {
      // ucs.updateCimom(Cimom.STATUS_OFFLINE, cimomId);
    }
    // return this.cc;
    return this.status;
  }