lsm_plugin_ipc.cpp File Reference

#include "lsm_plugin_ipc.hpp"
#include "lsm_datatypes.hpp"
#include "lsm_ipc.hpp"
#include "lsm_convert.hpp"
#include "libstoragemgmt/libstoragemgmt_systems.h"
#include "libstoragemgmt/libstoragemgmt_blockrange.h"
#include "libstoragemgmt/libstoragemgmt_disk.h"
#include "libstoragemgmt/libstoragemgmt_accessgroups.h"
#include "libstoragemgmt/libstoragemgmt_fs.h"
#include "libstoragemgmt/libstoragemgmt_snapshot.h"
#include "libstoragemgmt/libstoragemgmt_nfsexport.h"
#include "libstoragemgmt/libstoragemgmt_plug_interface.h"
#include "libstoragemgmt/libstoragemgmt_targetport.h"
#include "libstoragemgmt/libstoragemgmt_volumes.h"
#include "libstoragemgmt/libstoragemgmt_pool.h"
#include <errno.h>
#include <string.h>
#include <libxml/uri.h>
#include "util/qparams.h"
#include <syslog.h>
Include dependency graph for lsm_plugin_ipc.cpp:

Go to the source code of this file.

Defines

#define STR_D(c, s)
#define CMP_FUNCTION(name, method, method_type)
#define CMP_FREE_FUNCTION(name, method, method_type)

Typedefs

typedef int(* handler )(lsm_plugin_ptr p, Value &params, Value &response)
typedef int(* array_cmp )(void *item, void *cmp_data)
typedef void(* free_item )(void *item)

Functions

void * lsm_data_type_copy (lsm_data_type t, void *item)
int lsm_register_plugin_v1 (lsm_plugin_ptr plug, void *private_data, struct lsm_mgmt_ops_v1 *mgm_op, struct lsm_san_ops_v1 *san_op, struct lsm_fs_ops_v1 *fs_op, struct lsm_nas_ops_v1 *nas_op)
int lsm_register_plugin_v1_2 (lsm_plugin_ptr plug, void *private_data, struct lsm_mgmt_ops_v1 *mgm_op, struct lsm_san_ops_v1 *san_op, struct lsm_fs_ops_v1 *fs_op, struct lsm_nas_ops_v1 *nas_op, struct lsm_ops_v1_2 *ops_v1_2)
void * lsm_private_data_get (lsm_plugin_ptr plug)
int lsm_plugin_init_v1 (int argc, char *argv[], lsm_plugin_register reg, lsm_plugin_unregister unreg, const char *desc, const char *version)
int lsm_log_error_basic (lsm_plugin_ptr plug, lsm_error_number code, const char *msg)
int lsm_plugin_error_log (lsm_plugin_ptr plug, lsm_error_ptr error)
int LSM_DLL_EXPORT lsm_uri_parse (const char *uri, char **scheme, char **user, char **server, int *port, char **path, lsm_hash **query_params)
void lsm_plug_volume_search_filter (const char *search_key, const char *search_value, lsm_volume *vols[], uint32_t *count)
 CMP_FREE_FUNCTION (pool_free, lsm_pool_record_free, lsm_pool)
void lsm_plug_pool_search_filter (const char *search_key, const char *search_value, lsm_pool *pools[], uint32_t *count)
void lsm_plug_disk_search_filter (const char *search_key, const char *search_value, lsm_disk *disks[], uint32_t *count)
 CMP_FUNCTION (access_group_compare_system, lsm_access_group_system_id_get, lsm_access_group) CMP_FREE_FUNCTION(access_group_free
void lsm_plug_access_group_search_filter (const char *search_key, const char *search_value, lsm_access_group *ag[], uint32_t *count)
 CMP_FREE_FUNCTION (fs_free, lsm_fs_record_free, lsm_fs)
void lsm_plug_fs_search_filter (const char *search_key, const char *search_value, lsm_fs *fs[], uint32_t *count)
void lsm_plug_nfs_export_search_filter (const char *search_key, const char *search_value, lsm_nfs_export *exports[], uint32_t *count)
 CMP_FUNCTION (tp_compare_system_id, lsm_target_port_system_id_get, lsm_target_port) void lsm_plug_target_port_search_filter(const char *search_key

Variables

 lsm_access_group_record_free
 lsm_access_group
const char * search_value
const char lsm_target_port * tp []

Define Documentation

#define CMP_FREE_FUNCTION ( name,
method,
method_type   ) 
Value:
static void name(void *i)       \
{                               \
    method((method_type *)i);   \
}                               \

Definition at line 2625 of file lsm_plugin_ipc.cpp.

#define CMP_FUNCTION ( name,
method,
method_type   ) 
Value:
static int name(void *i, void *d)               \
{                                               \
    method_type *v = (method_type *)i;          \
    char *val = (char *)d;                      \
                                                \
    if( strcmp(method(v), val) == 0 ) {         \
        return 1;                               \
    }                                           \
    return 0;                                   \
}                                               \

Definition at line 2612 of file lsm_plugin_ipc.cpp.

#define STR_D ( c,
 ) 
Value:
do { \
    if(s) { \
        (c) = strdup(s); \
        if( !c ) {\
            rc = LSM_ERR_NO_MEMORY; \
            goto bail; \
        } \
    } \
} while(0)\

Definition at line 2526 of file lsm_plugin_ipc.cpp.


Typedef Documentation

typedef int(* array_cmp)(void *item, void *cmp_data)

Definition at line 2609 of file lsm_plugin_ipc.cpp.

typedef void(* free_item)(void *item)

Definition at line 2610 of file lsm_plugin_ipc.cpp.

typedef int(* handler)(lsm_plugin_ptr p, Value &params, Value &response)

Definition at line 300 of file lsm_plugin_ipc.cpp.


Function Documentation

CMP_FREE_FUNCTION ( fs_free  ,
lsm_fs_record_free  ,
lsm_fs   
)
CMP_FREE_FUNCTION ( pool_free  ,
lsm_pool_record_free  ,
lsm_pool   
)
CMP_FUNCTION ( tp_compare_system_id  ,
lsm_target_port_system_id_get  ,
lsm_target_port   
) const
CMP_FUNCTION ( access_group_compare_system  ,
lsm_access_group_system_id_get  ,
lsm_access_group   
)
void* lsm_data_type_copy ( lsm_data_type  t,
void *  item 
)

Copies the memory pointed to by item with given type t.

Parameters:
t Type of item to copy
item Pointer to src
Returns:
Null, else copy of item.

Definition at line 56 of file lsm_plugin_ipc.cpp.

Here is the call graph for this function:

int lsm_log_error_basic ( lsm_plugin_ptr  plug,
lsm_error_number  code,
const char *  msg 
)

Logs an error with the plug-in

Parameters:
plug Plug-in pointer
code Error code to return
msg String message
Returns:
returns code

Definition at line 2489 of file lsm_plugin_ipc.cpp.

Here is the call graph for this function:

void lsm_plug_access_group_search_filter ( const char *  search_key,
const char *  search_value,
lsm_access_group ag[],
uint32_t *  count 
)

Provides for access group filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] ag Array to filter
[in,out] count Number of access groups to filter, number remain

Definition at line 2736 of file lsm_plugin_ipc.cpp.

void lsm_plug_disk_search_filter ( const char *  search_key,
const char *  search_value,
lsm_disk disks[],
uint32_t *  count 
)

Provides for disk filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] disks Array to filter
[in,out] count Number of disks to filter, number remain

Definition at line 2708 of file lsm_plugin_ipc.cpp.

void lsm_plug_fs_search_filter ( const char *  search_key,
const char *  search_value,
lsm_fs fs[],
uint32_t *  count 
)

Provides for fs filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] fs Array to filter
[in,out] count Number of file systems to filter, number remain

Definition at line 2763 of file lsm_plugin_ipc.cpp.

void lsm_plug_nfs_export_search_filter ( const char *  search_key,
const char *  search_value,
lsm_nfs_export exports[],
uint32_t *  count 
)

Provides for nfs filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] exports Array to filter
[in,out] count Number of nfs exports to filter, number remain

Definition at line 2789 of file lsm_plugin_ipc.cpp.

void lsm_plug_pool_search_filter ( const char *  search_key,
const char *  search_value,
lsm_pool pools[],
uint32_t *  count 
)

Provides for pool filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] pools Array to filter
[in,out] count Number of pools to filter, number remain

Definition at line 2682 of file lsm_plugin_ipc.cpp.

void lsm_plug_volume_search_filter ( const char *  search_key,
const char *  search_value,
lsm_volume vols[],
uint32_t *  count 
)

Provides for volume filtering when an array doesn't support this natively. Note: Filters in place removing and freeing those that don't match.

Parameters:
search_key Search field
search_value Search value
[in,out] vols Array to filter
[in,out] count Number of volumes to filter, number remain

Definition at line 2654 of file lsm_plugin_ipc.cpp.

int lsm_plugin_error_log ( lsm_plugin_ptr  plug,
lsm_error_ptr  error 
)

Return an error with the plug-in

Parameters:
plug Opaque plug-in
error Error to associate.
Returns:
LSM_ERR_OK, else error reason.

Definition at line 2510 of file lsm_plugin_ipc.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

int lsm_plugin_init_v1 ( int  argc,
char *  argv[],
lsm_plugin_register  reg,
lsm_plugin_unregister  unreg,
const char *  desc,
const char *  version 
)

Initializes the plug-in.

Parameters:
argc Command line argument count
argv Command line arguments
reg Registration function
unreg Un-Registration function
desc Plug-in description
version Plug-in version
Returns:
exit code for plug-in

Definition at line 267 of file lsm_plugin_ipc.cpp.

Here is the caller graph for this function:

void* lsm_private_data_get ( lsm_plugin_ptr  plug  ) 

Used to retrieve private data for plug-in operation.

Parameters:
plug Opaque plug-in pointer.

Definition at line 144 of file lsm_plugin_ipc.cpp.

Here is the caller graph for this function:

int lsm_register_plugin_v1 ( lsm_plugin_ptr  plug,
void *  private_data,
struct lsm_mgmt_ops_v1 mgm_ops,
struct lsm_san_ops_v1 san_ops,
struct lsm_fs_ops_v1 fs_ops,
struct lsm_nas_ops_v1 nas_ops 
)

Used to register all the data needed for the plug-in operation.

Parameters:
plug Pointer provided by the framework
private_data Private data to be used for whatever the plug-in needs
mgm_ops Function pointers for management operations
san_ops Function pointers for SAN operations
fs_ops Function pointers for file system operations
nas_ops Function pointers for NAS operations
Returns:
LSM_ERR_OK on success, else error reason.

Definition at line 107 of file lsm_plugin_ipc.cpp.

Here is the caller graph for this function:

int lsm_register_plugin_v1_2 ( lsm_plugin_ptr  plug,
void *  private_data,
struct lsm_mgmt_ops_v1 mgm_ops,
struct lsm_san_ops_v1 san_ops,
struct lsm_fs_ops_v1 fs_ops,
struct lsm_nas_ops_v1 nas_ops,
struct lsm_ops_v1_2 ops_v1_2 
)

Used to register version 1.2 APIs plug-in operation.

Parameters:
plug Pointer provided by the framework
private_data Private data to be used for whatever the plug-in needs
mgm_ops Function pointers for struct lsm_mgmt_ops_v1
san_ops Function pointers for struct lsm_san_ops_v1
fs_ops Function pointers for struct lsm_fs_ops_v1
nas_ops Function pointers for struct lsm_nas_ops_v1
ops_v1_2 Function pointers for struct lsm_ops_v1_2
Returns:
LSM_ERR_OK on success, else error reason.

Definition at line 127 of file lsm_plugin_ipc.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

int LSM_DLL_EXPORT lsm_uri_parse ( const char *  uri,
char **  scheme,
char **  user,
char **  server,
int *  port,
char **  path,
lsm_hash **  query_params 
)

Convenience function for plug-in writer. Note: Make sure to free returned items to prevent memory leaks.

Parameters:
[in] uri URI to parse
[out] scheme returned scheme
[out] user returned user
[out] server returned server
[out] port returned port
[out] path returned path
[out] query_params returned query params
Returns:
LSM_ERR_OK on successful parse, else error reason.

Definition at line 2537 of file lsm_plugin_ipc.cpp.

Here is the call graph for this function:


Variable Documentation

Definition at line 2733 of file lsm_plugin_ipc.cpp.

lsm_access_group_record_free

Definition at line 2733 of file lsm_plugin_ipc.cpp.

const char* search_value

Definition at line 2818 of file lsm_plugin_ipc.cpp.

const char lsm_target_port* tp[]

Definition at line 2818 of file lsm_plugin_ipc.cpp.


Generated on 9 Jul 2015 for libStorageMgmt by  doxygen 1.6.1