AXP(Application eXtension Platform)/SysOp API

バージョン 1

    AXP(Application eXtension Platform)へ戻る

     

    AXP SysOp API を使うことで、AXP OSまたは、AXP UDL の仮想インスタンスから、show tech support または install コマンドを実行することができます。

    依存ファイル

    SysOP APIを使うためには、axpsystemapi を依存関係として指定する必要があります。

    Name: axpsystemapi (1.5.3)
    Desc: AXP standard services(AXP SysInfo, SysOp, CLI API)
       id: 53bf57bd-d7bf-4f4a-977d-6f90fb2e74e3
    Type: (application)

     

     

    Pythonの場合

     

    1. SystemOpExample.py を作成します。
      #!/bin/env python
      #
      # ---------------------------------------------------------------------
      # Copy tech support files to the specified URL.
      #
      # Usage:
      # python program_name.py ftp://username:password@ip_address/tech_support.tar.gz
      # ---------------------------------------------------------------------
      import __builtin__
      import sys
      sys.path.append('/usr/lib/python2.4/serviceapi')
      sys.path.append('/usr/lib/python2.4/serviceapi/axpsystemapi/')
      import AxpSystemAPI
      import SysOpRequest
      import SysOpResponse
      import ParamList
      import ParamListList
      argc = len(sys.argv)
      if (argc > 1):
           sysOp = AxpSystemAPI.getSysOpRequest()
           sysOp.setReqName("techSupport")
           listlist = sysOp.getParamListList()
           list = listlist.newParamList(None)
           list.newParam("destination", sys.argv[1])
           resp = sysOp.execute()
      else:
           print "Usage: \npython SystemOpExample.py ftp://username:password@ip_address/tech_support.tar.gz"

    2. SystemOpExample.py をパッケージに含めてAXPにインストールします。(rsync,scpなどでコピーしてもよいです)
      ※pythonをRPMでインストールすることを忘れないでください。
    3. 実行します。
      bash-3.2# ./SystemOpExample.py ftp://ftp-server/tech_support.tar.gz

     

     

    Javaの場合

    1. SystemOpExample.java を作成します
      // ---------------------------------------------------------------------
      // Copy tech support files to the specified URL.
      // ---------------------------------------------------------------------
      import com.cisco.aesop.apphosting.serviceapi.*;
      import com.cisco.aesop.apphosting.serviceapi.axpsystemapi.*;
      import java.io.IOException;
      public class SystemOpExample {
           public static void main(String args[]) {
               // Get arguments
               if (args.length == 0) {
                   System.out.println("Example: \n java -cp /usr/lib/java/localsocket.jar:/usr/lib/java/axpsystemapi.jar:/usr/lib/java/xercesImpl.jar SystemOpExample ftp://username:password@ip_address/tech_support.tar.gz \n\n");
                   System.exit(0);
               }
               // Copy tech support to the specified URL
               try {
                   SysOpRequest sysOp = AxpSystemAPI.getSysOpRequest();
                   sysOp.setReqName("techSupport");
                   ParamListList listlist = sysOp.getParamListList();
                   ParamList list = listlist.newParamList(null);
                   list.newParam("destination", args[0]);
                   SysOpResponse opResp = sysOp.execute();
               } catch (ErrorInfo err) {
                   System.out.println("ErrorInfo.errorCode=" + err.getErrorCode());
                   System.out.println("ErrorInfo.errorMsg=" + err.getErrorMessage());
               }
           }
      }
    2. コンパイルします。
      [sample]$ javac -cp /opt/axp/sdk/jar/axpsystemapi.jar SystemOpExample.java
    3. SystemOpExample.class をパッケージに含めてAXPにインストールします。(rsync,scpなどでコピーしてもよいです)
      ※jreをRPMでインストールすることを忘れないでください。
    4. 実行します。
      bash-3.2# java -cp /usr/lib/java/axpsystemapi.jar:/usr/lib/java/localsocket.jar:/usr/lib/java/xercesImpl.jar:. SystemOpExample ftp://ftp-server/tech-support.tar.gz

     

     

    Cの場合

    1. ソースコードおよびMakefileを作成します。
      SystemOpExample.cの例
      // ---------------------------------------------------------------------
      // Copy tech support files to the specified URL.
      // ---------------------------------------------------------------------
      #include <stdio.h>
      #include <stdlib.h>
      #include "AxpServiceAPI.h"
      #include "utilServiceAPI.h"
      int main (int argc, char *argv[])
      {
           // Get arguments.
           if (argc <= 1) {
               printf("Usage: \n ./SystemOpExample ftp://username:password@ip_address/tech_support.tar.gz \n");
               exit (0);
           }
           // Copy tech support to the path specified
           SysOpRequest *sysOp = NULL;
           SysOpResponse *sysOpResp= NULL;
           getSysOpRequest(&sysOp);
           sysOp->setReqName(sysOp, "techSupport");
           ParamListList *listlist = sysOp->getParamListList(sysOp);
           ParamList *list = listlist->newParamList(listlist, NULL);
           list->newParam(list, "destination", argv[1]);
           sysOp->execute(sysOp, &sysOpResp);
           sysOpResp->destroy(sysOpResp);
           sysOpResp = NULL;
           exit(0);
      }
      Makefileの例
      AXPDIR = /opt/AXP/sdk
      LIBDIR = $(AXPDIR)/lib
      INCDIR = $(AXPDIR)/include

      LDFLAGS = -L$(LIBDIR) -ldl -lc -lpthread -lutilserviceapi -llocal_socket -laxpsystemapi -lxerces-c

      CC = $(PREFIX)gcc
      LD = $(CC)
      CFLAGS = $(CMODE) -Wall -I$(INCDIR) -O0 -g3

      OBJECTS = SystemOpExample.o

      %.o: %.c
               $(CC) $(CFLAGS) -c $< -o $@

      SystemOpExample: SystemOpExample.o
               $(LD) -o SystemOpExample SystemOpExample.o $(LDFLAGS)

      clean:
               rm -f *.o SystemOpExample
    2. コンパイルします
    3. SystemOpExample をパッケージに含めてAXPにインストールします。(rsync,scpなどでコピーしてもよいです)
    4. 実行します。
      bash-3.2# ./SystemOpExample ftp://ftp-server/tech-support.tar.gz

     

    SysOp APIの詳細については、Developer GuideのAXP SysOp API を参照してください。