mms_mgmt.h revision cee0fb94c0d4227de0a00efc162fb2739844b641
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _MMS_MGMT_H_
#define _MMS_MGMT_H_
#include <netdb.h>
#include <pwd.h>
#include <libnvpair.h>
#include "mms_list.h" /* temporary, change over to nvlists */
/* MMS Options and Default Values */
/* All MMS configurable options for all objects */
#define O_MMHOST "mmhost"
#define O_MMPORT "port"
#define O_MMPASS "password"
#define O_OBJTYPE "objtype"
#define O_SECURECOMM "secure-comm"
#define O_SSLENABLED "sslenabled"
#define O_SSLPASSFILE "sslpassfile"
#define O_CERTFILE "certfile"
#define O_CRLFILE "crlfile"
#define O_PEERFILE "peerfile"
#define O_WELCOME "welcomefile"
#define O_DHFILE "dhfile"
#define O_VERIFY "verify"
#define O_LOGLEVEL "log-level"
#define O_LOGFILE "log-file"
#define O_DBDIR "db-dir"
#define O_DBPORT "db-port"
#define O_DBLOG "db-log"
#define O_DBNAME "dbname"
#define O_DBHOST "dbhost"
#define O_NUMRESTART "num-restarts"
#define O_ATTENDED "attended"
#define O_NUMSOCKET "num-socket"
#define O_DKTIMEOUT "disk-timeout"
#define O_SERIALNO "serialno"
#define O_ACSHOST "acsls"
#define O_ACSPORT "acsport"
#define O_OBJSTATE "state"
#define O_MSGLEVEL "msg-level"
#define O_TRACELEVEL "trace-level"
#define O_TRACESZ "trace-file-size"
#define O_MMSLIB "library"
#define O_DEVCONN "connection"
#define O_LIBCONN "libconntype"
#define O_APPS "apps"
#define O_UNLOADTM "unload-time"
#define O_RESERVE "reserve"
#define O_RETENTION "retain"
#define O_VALIDATEEXP "validate-expiration"
#define O_VALIDATEVOL "validate-volid"
#define O_VALIDATEFN "validate-filename"
#define O_OVERWRITEEXT "overwrite-existing"
#define O_RESPTXT "responsetxt"
#define O_FORCE "force"
#define O_MPOOL "mpool"
#define O_HOST "host"
#define O_UNCFG "uncfg"
#define O_NAME "name"
#define O_ACSNUM "acs"
#define O_LSMNUM "lsm"
#define O_LMNAME "lmname"
#define O_DMNAME "dmname"
#define O_DGNAME "drivegroupname"
#define O_MMSDRV "drive"
#define O_TYPE "hwtype"
#define O_ONLINE "online"
#define O_DISABLED "disabled"
#define O_VOLUMES "volumes"
#define O_DEVPATH "devpath"
#define O_SIZE "size"
#define O_MTYPE "mediatype"
#define O_VOLTYPE "voltype"
#define O_ACSLSDIR "acslsdir"
#define O_DENSITY "density"
#define O_NOWAIT "nowait"
#define O_NOREWIND "norewind"
/* helpers for MMS services */
#define MM 0x00000001
#define WCR 0x00000002
#define DB 0x00000004
#if 0
#define MMSVC "svc:/application/management/mms:mm"
#define WCRSVC "svc:/application/management/mms:wcr"
#define DBSVC "svc:/application/management/mms:db"
#endif
#define MMSVC MMS_CFG_MM_INST
#define WCRSVC MMS_CFG_WCR_INST
#define DBSVC MMS_CFG_DB_INST
/* defaults */
#define MMSSBINDIR "/usr/bin"
#define MMS_DEF_MMPORT "7151"
#define MMS_DEF_DBPORT "7656"
#define MMS_DEF_LOGLVL "error"
/*
* mms_mgmt_init_host()
*
* DESCRIPTION:
* Sets all required MMS options, and starts required services.
*
* On an MMS client system,
* sets MM host, port and administrative password
* sets SSL options, if desired
* starts the Watcher daemon
*
* On on MMS server system,
* creates MMS database admin user
* initializes MMS database and starts database server
* sets MM options [TBD: list these with explanation]
* starts MM daemon and Watcher daemon
*
* ARGUMENTS:
* nvlist_t **errs optional - used to return detailed errors
* operational failures during initialization.
* If 'errs' is non-NULL, a new nvlist will be
* allocated. The caller should free this list
* with nvlist_free().
*
* RETURN VALUES:
*
* 0 Success
* MMS_MGMT_NOARG 'opts' argument missing
* EINVAL One or more requested options is invalid
* EALREADY Host has already been initialized for MMS
* ENOMEM Out of memory
* [others TBD]
*/
int
/*
* Required opts that are not in inopts, and options with invalid values
* are added to the argument nvlist "errlist".
*/
/*
* mms_mgmt_get_opts(char* type, nvlist_t **opts)
*/
int
int mms_mgmt_uninitialize(void);
/* MMS Database Functions */
int
int
mgmt_db_init(void);
int
int
mgmt_db_drop(void);
int
mgmt_db_check(void);
int
int
mgmt_db_restore(char *dumpfile);
/* Library and Drive functions */
/*
* mms_mgmt_discover_libraries()
*
* Finds ACSLS libraries, and optionally associated drives.
* Those already configured for use with MMS are filtered out unless
* 'showall' is TRUE.
*/
int
void free_drive_list(void *arg);
void free_acslib_list(void *arg);
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
int
/* mount processing door info */
#define MMS_MGMT_MOUNT 1
#define MMS_MGMT_UNMOUNT 2
typedef struct {
int op;
int st;
char cartridge[1024];
char library[1024];
char volname[1024];
char devname[1024];
char app[1024];
char inst[1024];
char pass[1024];
char cmd[8192];
} mmsmnt_arg_t;
int
int
int
#endif /* _MMS_MGMT_H_ */