Blame vendor/github.com/vmware/govmomi/guest/process_manager.go

Packit Service 4d2de5
/*
Packit Service 4d2de5
Copyright (c) 2015 VMware, Inc. All Rights Reserved.
Packit Service 4d2de5
Packit Service 4d2de5
Licensed under the Apache License, Version 2.0 (the "License");
Packit Service 4d2de5
you may not use this file except in compliance with the License.
Packit Service 4d2de5
You may obtain a copy of the License at
Packit Service 4d2de5
Packit Service 4d2de5
    http://www.apache.org/licenses/LICENSE-2.0
Packit Service 4d2de5
Packit Service 4d2de5
Unless required by applicable law or agreed to in writing, software
Packit Service 4d2de5
distributed under the License is distributed on an "AS IS" BASIS,
Packit Service 4d2de5
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service 4d2de5
See the License for the specific language governing permissions and
Packit Service 4d2de5
limitations under the License.
Packit Service 4d2de5
*/
Packit Service 4d2de5
Packit Service 4d2de5
package guest
Packit Service 4d2de5
Packit Service 4d2de5
import (
Packit Service 4d2de5
	"context"
Packit Service 4d2de5
Packit Service 4d2de5
	"github.com/vmware/govmomi/vim25"
Packit Service 4d2de5
	"github.com/vmware/govmomi/vim25/methods"
Packit Service 4d2de5
	"github.com/vmware/govmomi/vim25/types"
Packit Service 4d2de5
)
Packit Service 4d2de5
Packit Service 4d2de5
type ProcessManager struct {
Packit Service 4d2de5
	types.ManagedObjectReference
Packit Service 4d2de5
Packit Service 4d2de5
	vm types.ManagedObjectReference
Packit Service 4d2de5
Packit Service 4d2de5
	c *vim25.Client
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) Client() *vim25.Client {
Packit Service 4d2de5
	return m.c
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) Reference() types.ManagedObjectReference {
Packit Service 4d2de5
	return m.ManagedObjectReference
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) ListProcesses(ctx context.Context, auth types.BaseGuestAuthentication, pids []int64) ([]types.GuestProcessInfo, error) {
Packit Service 4d2de5
	req := types.ListProcessesInGuest{
Packit Service 4d2de5
		This: m.Reference(),
Packit Service 4d2de5
		Vm:   m.vm,
Packit Service 4d2de5
		Auth: auth,
Packit Service 4d2de5
		Pids: pids,
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	res, err := methods.ListProcessesInGuest(ctx, m.c, &req)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return res.Returnval, err
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) ReadEnvironmentVariable(ctx context.Context, auth types.BaseGuestAuthentication, names []string) ([]string, error) {
Packit Service 4d2de5
	req := types.ReadEnvironmentVariableInGuest{
Packit Service 4d2de5
		This:  m.Reference(),
Packit Service 4d2de5
		Vm:    m.vm,
Packit Service 4d2de5
		Auth:  auth,
Packit Service 4d2de5
		Names: names,
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	res, err := methods.ReadEnvironmentVariableInGuest(ctx, m.c, &req)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return nil, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return res.Returnval, err
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) StartProgram(ctx context.Context, auth types.BaseGuestAuthentication, spec types.BaseGuestProgramSpec) (int64, error) {
Packit Service 4d2de5
	req := types.StartProgramInGuest{
Packit Service 4d2de5
		This: m.Reference(),
Packit Service 4d2de5
		Vm:   m.vm,
Packit Service 4d2de5
		Auth: auth,
Packit Service 4d2de5
		Spec: spec,
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	res, err := methods.StartProgramInGuest(ctx, m.c, &req)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return 0, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	return res.Returnval, err
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (m ProcessManager) TerminateProcess(ctx context.Context, auth types.BaseGuestAuthentication, pid int64) error {
Packit Service 4d2de5
	req := types.TerminateProcessInGuest{
Packit Service 4d2de5
		This: m.Reference(),
Packit Service 4d2de5
		Vm:   m.vm,
Packit Service 4d2de5
		Auth: auth,
Packit Service 4d2de5
		Pid:  pid,
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	_, err := methods.TerminateProcessInGuest(ctx, m.c, &req)
Packit Service 4d2de5
	return err
Packit Service 4d2de5
}