本文整理汇总了Golang中github.com/vmware/vic/lib/apiservers/portlayer/restapi/operations.PortLayerAPI类的典型用法代码示例。如果您正苦于以下问题:Golang PortLayerAPI类的具体用法?Golang PortLayerAPI怎么用?Golang PortLayerAPI使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PortLayerAPI类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Configure
func (i *InteractionHandlersImpl) Configure(api *operations.PortLayerAPI, _ *HandlerContext) {
var err error
api.InteractionContainerResizeHandler = interaction.ContainerResizeHandlerFunc(i.ContainerResizeHandler)
api.InteractionContainerSetStdinHandler = interaction.ContainerSetStdinHandlerFunc(i.ContainerSetStdinHandler)
api.InteractionContainerGetStdoutHandler = interaction.ContainerGetStdoutHandlerFunc(i.ContainerGetStdoutHandler)
api.InteractionContainerGetStderrHandler = interaction.ContainerGetStderrHandlerFunc(i.ContainerGetStderrHandler)
sessionconfig := &session.Config{
Service: options.PortLayerOptions.SDK,
Insecure: options.PortLayerOptions.Insecure,
Keepalive: options.PortLayerOptions.Keepalive,
DatacenterPath: options.PortLayerOptions.DatacenterPath,
ClusterPath: options.PortLayerOptions.ClusterPath,
PoolPath: options.PortLayerOptions.PoolPath,
DatastorePath: options.PortLayerOptions.DatastorePath,
}
ctx := context.Background()
interactionSession, err = session.NewSession(sessionconfig).Create(ctx)
if err != nil {
log.Fatalf("InteractionHandler ERROR: %s", err)
}
i.attachServer = attach.NewAttachServer(exec.ManagementHostName, 0)
if err := i.attachServer.Start(); err != nil {
log.Fatalf("Attach server unable to start: %s", err)
}
}
开发者ID:kjplatz,项目名称:vic,代码行数:30,代码来源:interaction_handlers.go
示例2: Configure
func (handler *KvHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
api.KvGetValueHandler = kv.GetValueHandlerFunc(handler.GetValueHandler)
api.KvPutValueHandler = kv.PutValueHandlerFunc(handler.PutValueHandler)
api.KvDeleteValueHandler = kv.DeleteValueHandlerFunc(handler.DeleteValueHandler)
// Get the APIKV store -- it should always be present since it's
// initialized when the portlayer starts
s, _ := store.Store(store.APIKV)
handler.defaultStore = s
}
开发者ID:vmware,项目名称:vic,代码行数:10,代码来源:kv_handlers.go
示例3: configureAPI
func configureAPI(api *operations.PortLayerAPI) http.Handler {
if options.PortLayerOptions.Debug {
log.SetLevel(log.DebugLevel)
}
ctx := context.Background()
sessionconfig := &session.Config{
Service: options.PortLayerOptions.SDK,
Insecure: options.PortLayerOptions.Insecure,
Keepalive: options.PortLayerOptions.Keepalive,
DatacenterPath: options.PortLayerOptions.DatacenterPath,
ClusterPath: options.PortLayerOptions.ClusterPath,
PoolPath: options.PortLayerOptions.PoolPath,
DatastorePath: options.PortLayerOptions.DatastorePath,
}
sess, err := session.NewSession(sessionconfig).Create(ctx)
if err != nil {
log.Fatalf("configure_port_layer ERROR: %s", err)
}
// Configure the func invoked if the PL panics or is restarted by vic-init
api.ServerShutdown = func() {
log.Infof("Shutting down port-layer-server")
// Logout the session
if err := sess.Logout(ctx); err != nil {
log.Warnf("unable to log out of session: %s", err)
}
}
// initialize the port layer
if err = portlayer.Init(ctx, sess); err != nil {
log.Fatalf("could not initialize port layer: %s", err)
}
// configure the api here
api.ServeError = errors.ServeError
api.BinConsumer = httpkit.ByteStreamConsumer()
api.JSONConsumer = httpkit.JSONConsumer()
api.JSONProducer = httpkit.JSONProducer()
api.TxtProducer = httpkit.TextProducer()
handlerCtx := &handlers.HandlerContext{
Session: sess,
}
for _, handler := range portlayerhandlers {
handler.Configure(api, handlerCtx)
}
return setupGlobalMiddleware(api.Serve(setupMiddlewares))
}
开发者ID:vmware,项目名称:vic,代码行数:57,代码来源:configure_port_layer.go
示例4: Configure
// Configure assigns functions to all the scopes api handlers
func (handler *ScopesHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
api.ScopesCreateScopeHandler = scopes.CreateScopeHandlerFunc(handler.ScopesCreate)
api.ScopesDeleteScopeHandler = scopes.DeleteScopeHandlerFunc(handler.ScopesDelete)
api.ScopesListAllHandler = scopes.ListAllHandlerFunc(handler.ScopesListAll)
api.ScopesListHandler = scopes.ListHandlerFunc(handler.ScopesList)
api.ScopesGetContainerEndpointsHandler = scopes.GetContainerEndpointsHandlerFunc(handler.ScopesGetContainerEndpoints)
api.ScopesAddContainerHandler = scopes.AddContainerHandlerFunc(handler.ScopesAddContainer)
api.ScopesRemoveContainerHandler = scopes.RemoveContainerHandlerFunc(handler.ScopesRemoveContainer)
api.ScopesBindContainerHandler = scopes.BindContainerHandlerFunc(handler.ScopesBindContainer)
api.ScopesUnbindContainerHandler = scopes.UnbindContainerHandlerFunc(handler.ScopesUnbindContainer)
handler.netCtx = network.DefaultContext
handler.handlerCtx = handlerCtx
}
开发者ID:vmware,项目名称:vic,代码行数:15,代码来源:scopes_handlers.go
示例5: configureFlags
func configureFlags(api *operations.PortLayerAPI) {
api.CommandLineOptionsGroups = []swag.CommandLineOptionsGroup{
{
LongDescription: "Port Layer Options",
Options: options.PortLayerOptions,
ShortDescription: "Port Layer Options",
},
}
}
开发者ID:vmware,项目名称:vic,代码行数:9,代码来源:configure_port_layer.go
示例6: Configure
// Configure assigns functions to all the scopes api handlers
func (handler *ScopesHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
api.ScopesCreateScopeHandler = scopes.CreateScopeHandlerFunc(handler.ScopesCreate)
api.ScopesDeleteScopeHandler = scopes.DeleteScopeHandlerFunc(handler.ScopesDelete)
api.ScopesListAllHandler = scopes.ListAllHandlerFunc(handler.ScopesListAll)
api.ScopesListHandler = scopes.ListHandlerFunc(handler.ScopesList)
api.ScopesGetContainerEndpointsHandler = scopes.GetContainerEndpointsHandlerFunc(handler.ScopesGetContainerEndpoints)
api.ScopesAddContainerHandler = scopes.AddContainerHandlerFunc(handler.ScopesAddContainer)
api.ScopesRemoveContainerHandler = scopes.RemoveContainerHandlerFunc(handler.ScopesRemoveContainer)
api.ScopesBindContainerHandler = scopes.BindContainerHandlerFunc(handler.ScopesBindContainer)
api.ScopesUnbindContainerHandler = scopes.UnbindContainerHandlerFunc(handler.ScopesUnbindContainer)
err := network.Init()
if err != nil {
log.Fatalf("failed to create network context: %s", err)
}
handler.netCtx = network.DefaultContext
handler.handlerCtx = handlerCtx
}
开发者ID:kjplatz,项目名称:vic,代码行数:20,代码来源:scopes_handlers.go
示例7: Configure
func (i *InteractionHandlersImpl) Configure(api *operations.PortLayerAPI, _ *HandlerContext) {
api.InteractionInteractionJoinHandler = interaction.InteractionJoinHandlerFunc(i.JoinHandler)
api.InteractionInteractionBindHandler = interaction.InteractionBindHandlerFunc(i.BindHandler)
api.InteractionInteractionUnbindHandler = interaction.InteractionUnbindHandlerFunc(i.UnbindHandler)
api.InteractionContainerResizeHandler = interaction.ContainerResizeHandlerFunc(i.ContainerResizeHandler)
api.InteractionContainerSetStdinHandler = interaction.ContainerSetStdinHandlerFunc(i.ContainerSetStdinHandler)
api.InteractionContainerGetStdoutHandler = interaction.ContainerGetStdoutHandlerFunc(i.ContainerGetStdoutHandler)
api.InteractionContainerGetStderrHandler = interaction.ContainerGetStderrHandlerFunc(i.ContainerGetStderrHandler)
api.InteractionContainerCloseStdinHandler = interaction.ContainerCloseStdinHandlerFunc(i.ContainerCloseStdinHandler)
i.attachServer = attach.NewAttachServer(constants.ManagementHostName, 0)
if err := i.attachServer.Start(false); err != nil {
log.Fatalf("Attach server unable to start: %s", err)
}
}
开发者ID:vmware,项目名称:vic,代码行数:19,代码来源:interaction_handlers.go
示例8: Configure
// Configure assigns functions to all the miscellaneous api handlers
func (handler *MiscHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
api.MiscPingHandler = misc.PingHandlerFunc(handler.Ping)
api.MiscGetVCHInfoHandler = misc.GetVCHInfoHandlerFunc(handler.GetVCHInfo)
}
开发者ID:kjplatz,项目名称:vic,代码行数:5,代码来源:misc_handlers.go
示例9: Configure
// Configure assigns functions to all the exec api handlers
func (handler *ContainersHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
api.ContainersCreateHandler = containers.CreateHandlerFunc(handler.CreateHandler)
api.ContainersStateChangeHandler = containers.StateChangeHandlerFunc(handler.StateChangeHandler)
api.ContainersGetHandler = containers.GetHandlerFunc(handler.GetHandler)
api.ContainersCommitHandler = containers.CommitHandlerFunc(handler.CommitHandler)
api.ContainersGetStateHandler = containers.GetStateHandlerFunc(handler.GetStateHandler)
api.ContainersContainerRemoveHandler = containers.ContainerRemoveHandlerFunc(handler.RemoveContainerHandler)
api.ContainersGetContainerInfoHandler = containers.GetContainerInfoHandlerFunc(handler.GetContainerInfoHandler)
api.ContainersGetContainerListHandler = containers.GetContainerListHandlerFunc(handler.GetContainerListHandler)
api.ContainersContainerSignalHandler = containers.ContainerSignalHandlerFunc(handler.ContainerSignalHandler)
api.ContainersGetContainerLogsHandler = containers.GetContainerLogsHandlerFunc(handler.GetContainerLogsHandler)
api.ContainersContainerWaitHandler = containers.ContainerWaitHandlerFunc(handler.ContainerWaitHandler)
handler.handlerCtx = handlerCtx
}
开发者ID:vmware,项目名称:vic,代码行数:16,代码来源:containers_handlers.go
示例10: Configure
// Configure assigns functions to all the storage api handlers
func (handler *StorageHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
var err error
ctx := context.Background()
sessionconfig := &session.Config{
Service: options.PortLayerOptions.SDK,
Insecure: options.PortLayerOptions.Insecure,
Keepalive: options.PortLayerOptions.Keepalive,
DatacenterPath: options.PortLayerOptions.DatacenterPath,
ClusterPath: options.PortLayerOptions.ClusterPath,
PoolPath: options.PortLayerOptions.PoolPath,
DatastorePath: options.PortLayerOptions.DatastorePath,
}
storageSession, err := session.NewSession(sessionconfig).Create(ctx)
if err != nil {
log.Fatalf("StorageHandler ERROR: %s", err)
}
if len(spl.Config.ImageStores) == 0 {
log.Panicf("No image stores provided; unable to instantiate storage layer")
}
imageStoreURL := spl.Config.ImageStores[0]
// TODO: support multiple image stores. Right now we only support the first one
if len(spl.Config.ImageStores) > 1 {
log.Warningf("Multiple image stores found. Multiple image stores are not yet supported. Using [%s] %s", imageStoreURL.Host, imageStoreURL.Path)
}
ds, err := vsphereSpl.NewImageStore(ctx, storageSession, &imageStoreURL)
if err != nil {
log.Panicf("Cannot instantiate storage layer: %s", err)
}
// The imagestore is implemented via a cache which is backed via an
// implementation that writes to disks. The cache is used to avoid
// expensive metadata lookups.
storageImageLayer = spl.NewLookupCache(ds)
vsVolumeStore, err := vsphereSpl.NewVolumeStore(context.TODO(), storageSession)
if err != nil {
log.Panicf("Cannot instantiate the volume store: %s", err)
}
// Get the datastores for volumes.
// Each volume store name maps to a datastore + path, which can be referred to by the name.
dstores, err := datastore.GetDatastores(context.TODO(), storageSession, spl.Config.VolumeLocations)
if err != nil {
log.Panicf("Cannot find datastores: %s", err)
}
// Add datastores to the vsphere volume store impl
for volStoreName, volDatastore := range dstores {
log.Infof("Adding volume store %s (%s)", volStoreName, volDatastore.RootURL)
_, err := vsVolumeStore.AddStore(context.TODO(), volDatastore, volStoreName)
if err != nil {
log.Errorf("volume addition error %s", err)
}
}
storageVolumeLayer, err = spl.NewVolumeLookupCache(context.TODO(), vsVolumeStore)
if err != nil {
log.Panicf("Cannot instantiate the Volume Lookup cache: %s", err)
}
api.StorageCreateImageStoreHandler = storage.CreateImageStoreHandlerFunc(handler.CreateImageStore)
api.StorageGetImageHandler = storage.GetImageHandlerFunc(handler.GetImage)
api.StorageGetImageTarHandler = storage.GetImageTarHandlerFunc(handler.GetImageTar)
api.StorageListImagesHandler = storage.ListImagesHandlerFunc(handler.ListImages)
api.StorageWriteImageHandler = storage.WriteImageHandlerFunc(handler.WriteImage)
api.StorageVolumeStoresListHandler = storage.VolumeStoresListHandlerFunc(handler.VolumeStoresList)
api.StorageCreateVolumeHandler = storage.CreateVolumeHandlerFunc(handler.CreateVolume)
api.StorageRemoveVolumeHandler = storage.RemoveVolumeHandlerFunc(handler.RemoveVolume)
api.StorageVolumeJoinHandler = storage.VolumeJoinHandlerFunc(handler.VolumeJoin)
api.StorageListVolumesHandler = storage.ListVolumesHandlerFunc(handler.VolumesList)
}
开发者ID:kjplatz,项目名称:vic,代码行数:75,代码来源:storage_handlers.go
示例11: Configure
// Configure initializes the handler
func (i *LoggingHandlersImpl) Configure(api *operations.PortLayerAPI, _ *HandlerContext) {
api.LoggingLoggingJoinHandler = logging.LoggingJoinHandlerFunc(i.JoinHandler)
api.LoggingLoggingBindHandler = logging.LoggingBindHandlerFunc(i.BindHandler)
api.LoggingLoggingUnbindHandler = logging.LoggingUnbindHandlerFunc(i.UnbindHandler)
}
开发者ID:vmware,项目名称:vic,代码行数:6,代码来源:logging_handlers.go
示例12: Configure
// Configure assigns functions to all the storage api handlers
func (h *StorageHandlersImpl) Configure(api *operations.PortLayerAPI, handlerCtx *HandlerContext) {
var err error
ctx := context.Background()
op := trace.NewOperation(ctx, "configure")
if len(spl.Config.ImageStores) == 0 {
log.Panicf("No image stores provided; unable to instantiate storage layer")
}
imageStoreURL := spl.Config.ImageStores[0]
// TODO: support multiple image stores. Right now we only support the first one
if len(spl.Config.ImageStores) > 1 {
log.Warningf("Multiple image stores found. Multiple image stores are not yet supported. Using [%s] %s", imageStoreURL.Host, imageStoreURL.Path)
}
ds, err := vsphereSpl.NewImageStore(op, handlerCtx.Session, &imageStoreURL)
if err != nil {
log.Panicf("Cannot instantiate storage layer: %s", err)
}
// The imagestore is implemented via a cache which is backed via an
// implementation that writes to disks. The cache is used to avoid
// expensive metadata lookups.
h.imageCache = spl.NewLookupCache(ds)
// The same is done for volumes. It's implemented via a cache which writes
// to an implementation that takes a datastore to write to.
vsVolumeStore, err := vsphereSpl.NewVolumeStore(op, handlerCtx.Session)
if err != nil {
log.Panicf("Cannot instantiate the volume store: %s", err)
}
// Get the datastores for volumes.
// Each volume store name maps to a datastore + path, which can be referred to by the name.
dstores, err := datastore.GetDatastores(context.TODO(), handlerCtx.Session, spl.Config.VolumeLocations)
if err != nil {
log.Panicf("Cannot find datastores: %s", err)
}
// Add datastores to the vsphere volume store impl
for volStoreName, volDatastore := range dstores {
log.Infof("Adding volume store %s (%s)", volStoreName, volDatastore.RootURL)
_, err := vsVolumeStore.AddStore(op, volDatastore, volStoreName)
if err != nil {
log.Errorf("volume addition error %s", err)
}
}
h.volumeCache, err = spl.NewVolumeLookupCache(op, vsVolumeStore)
if err != nil {
log.Panicf("Cannot instantiate the Volume Lookup cache: %s", err)
}
api.StorageCreateImageStoreHandler = storage.CreateImageStoreHandlerFunc(h.CreateImageStore)
api.StorageGetImageHandler = storage.GetImageHandlerFunc(h.GetImage)
api.StorageGetImageTarHandler = storage.GetImageTarHandlerFunc(h.GetImageTar)
api.StorageListImagesHandler = storage.ListImagesHandlerFunc(h.ListImages)
api.StorageWriteImageHandler = storage.WriteImageHandlerFunc(h.WriteImage)
api.StorageDeleteImageHandler = storage.DeleteImageHandlerFunc(h.DeleteImage)
api.StorageVolumeStoresListHandler = storage.VolumeStoresListHandlerFunc(h.VolumeStoresList)
api.StorageCreateVolumeHandler = storage.CreateVolumeHandlerFunc(h.CreateVolume)
api.StorageRemoveVolumeHandler = storage.RemoveVolumeHandlerFunc(h.RemoveVolume)
api.StorageVolumeJoinHandler = storage.VolumeJoinHandlerFunc(h.VolumeJoin)
api.StorageListVolumesHandler = storage.ListVolumesHandlerFunc(h.VolumesList)
api.StorageGetVolumeHandler = storage.GetVolumeHandlerFunc(h.GetVolume)
}
开发者ID:vmware,项目名称:vic,代码行数:68,代码来源:storage_handlers.go
注:本文中的github.com/vmware/vic/lib/apiservers/portlayer/restapi/operations.PortLayerAPI类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论