Skip to content

Commit c92df32

Browse files
committed
remove duplicates resulting from rebase
Signed-off-by: Plamen Petrov <[email protected]>
1 parent 6d523a8 commit c92df32

File tree

8 files changed

+271
-857
lines changed

8 files changed

+271
-857
lines changed

_submodules/runc

Submodule runc updated 629 files

firecracker-control/local.go

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -248,42 +248,6 @@ func (s *local) StopVM(requestCtx context.Context, req *proto.StopVMRequest) (*e
248248
return resp, multierror.Append(shimErr, waitErr).ErrorOrNil()
249249
}
250250

251-
// PauseVM pauses a VM
252-
func (s *local) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) {
253-
client, err := s.shimFirecrackerClient(ctx, req.VMID)
254-
if err != nil {
255-
return nil, err
256-
}
257-
258-
defer client.Close()
259-
260-
resp, err := client.PauseVM(ctx, req)
261-
if err != nil {
262-
s.logger.WithError(err).Error()
263-
return nil, err
264-
}
265-
266-
return resp, nil
267-
}
268-
269-
// ResumeVM resumes a VM
270-
func (s *local) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) {
271-
client, err := s.shimFirecrackerClient(ctx, req.VMID)
272-
if err != nil {
273-
return nil, err
274-
}
275-
276-
defer client.Close()
277-
278-
resp, err := client.ResumeVM(ctx, req)
279-
if err != nil {
280-
s.logger.WithError(err).Error()
281-
return nil, err
282-
}
283-
284-
return resp, nil
285-
}
286-
287251
func (s *local) waitForShimToExit(ctx context.Context, vmID string) error {
288252
socketAddr, err := shim.SocketAddress(ctx, s.containerdAddress, vmID)
289253
if err != nil {

go.mod

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
module github.com/firecracker-microvm/firecracker-containerd
22

33
require (
4-
github.com/Microsoft/go-winio v0.4.14 // indirect
54
github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 // indirect
65
github.com/awslabs/tc-redirect-tap v0.0.0-20200708224642-a0300978797d
76
github.com/containerd/containerd v1.5.2
@@ -13,22 +12,20 @@ require (
1312
github.com/containernetworking/plugins v0.9.1
1413
github.com/firecracker-microvm/firecracker-go-sdk v0.22.1-0.20210520223842-abd0815b8bf9
1514
github.com/go-ole/go-ole v1.2.4 // indirect
16-
github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384 // indirect
1715
github.com/gofrs/uuid v3.3.0+incompatible
1816
github.com/gogo/protobuf v1.3.2
1917
github.com/golang/protobuf v1.4.3
2018
github.com/hashicorp/go-multierror v1.1.0
21-
github.com/imdario/mergo v0.3.8 // indirect
2219
github.com/mdlayher/vsock v0.0.0-20190329173812-a92c53d5dcab
2320
github.com/miekg/dns v1.1.16
2421
github.com/opencontainers/runc v1.0.0-rc93
2522
github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d
2623
github.com/pkg/errors v0.9.1
27-
github.com/prometheus/client_golang v0.9.2 // indirect
2824
github.com/shirou/gopsutil v2.18.12+incompatible
2925
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect
3026
github.com/sirupsen/logrus v1.8.0
3127
github.com/stretchr/testify v1.6.1
28+
github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c
3229
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852
3330
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a
3431
golang.org/x/sys v0.0.0-20210324051608-47abb6519492

go.sum

Lines changed: 2 additions & 121 deletions
Large diffs are not rendered by default.

proto/firecracker.pb.go

Lines changed: 93 additions & 431 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/service/fccontrol/fccontrol.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ service Firecracker {
1515

1616
// Resumes a VM
1717
rpc ResumeVM(ResumeVMRequest) returns (google.protobuf.Empty);
18-
18+
1919
// Stops existing Firecracker instance by VM ID
2020
rpc StopVM(StopVMRequest) returns (google.protobuf.Empty);
2121

proto/service/fccontrol/ttrpc/fccontrol.pb.go

Lines changed: 43 additions & 263 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

runtime/service.go

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1895,3 +1895,133 @@ func (s *service) dialFirecrackerSocket() error {
18951895

18961896
return nil
18971897
}
1898+
1899+
// PauseVM Pauses a VM
1900+
func (s *service) PauseVM(ctx context.Context, req *proto.PauseVMRequest) (*empty.Empty, error) {
1901+
pauseReq, err := formPauseReq()
1902+
if err != nil {
1903+
s.logger.WithError(err).Error("Failed to create pause vm request")
1904+
return nil, err
1905+
}
1906+
1907+
err = s.waitVMReady()
1908+
if err != nil {
1909+
return nil, err
1910+
}
1911+
1912+
resp, err := s.httpControlClient.Do(pauseReq)
1913+
if err != nil {
1914+
s.logger.WithError(err).Error("Failed to send pause VM request")
1915+
return nil, err
1916+
}
1917+
if !strings.Contains(resp.Status, "204") {
1918+
s.logger.WithError(err).Error("Failed to pause VM")
1919+
return nil, err
1920+
}
1921+
1922+
return &empty.Empty{}, nil
1923+
}
1924+
1925+
// ResumeVM Resumes a VM
1926+
func (s *service) ResumeVM(ctx context.Context, req *proto.ResumeVMRequest) (*empty.Empty, error) {
1927+
resumeReq, err := formResumeReq()
1928+
if err != nil {
1929+
s.logger.WithError(err).Error("Failed to create resume vm request")
1930+
return nil, err
1931+
}
1932+
1933+
resp, err := s.httpControlClient.Do(resumeReq)
1934+
if err != nil {
1935+
s.logger.WithError(err).Error("Failed to send resume VM request")
1936+
return nil, err
1937+
}
1938+
if !strings.Contains(resp.Status, "204") {
1939+
s.logger.WithError(err).Error("Failed to resume VM")
1940+
return nil, err
1941+
}
1942+
return &empty.Empty{}, nil
1943+
}
1944+
1945+
// LoadSnapshot Loads a VM from a snapshot
1946+
func (s *service) LoadSnapshot(ctx context.Context, req *proto.LoadSnapshotRequest) (*proto.LoadResponse, error) {
1947+
if err := s.startFirecrackerProcess(); err != nil {
1948+
s.logger.WithError(err).Error("startFirecrackerProcess returned an error")
1949+
return nil, err
1950+
}
1951+
1952+
if err := s.dialFirecrackerSocket(); err != nil {
1953+
s.logger.WithError(err).Error("Failed to wait for firecracker socket")
1954+
}
1955+
s.createHTTPControlClient()
1956+
1957+
sendSockAddr := s.shimDir.FirecrackerUPFSockPath()
1958+
if !req.EnableUserPF {
1959+
sendSockAddr = "dummy"
1960+
}
1961+
1962+
loadSnapReq, err := formLoadSnapReq(req.SnapshotFilePath, req.MemFilePath, sendSockAddr, req.EnableUserPF)
1963+
if err != nil {
1964+
s.logger.WithError(err).Error("Failed to create load snapshot request")
1965+
return nil, err
1966+
}
1967+
1968+
resp, err := s.httpControlClient.Do(loadSnapReq)
1969+
if err != nil {
1970+
s.logger.WithError(err).Error("Failed to send load snapshot request")
1971+
return nil, err
1972+
}
1973+
if !strings.Contains(resp.Status, "204") {
1974+
s.logger.WithError(err).Error("Failed to load VM from snapshot")
1975+
s.logger.WithError(err).Errorf("Status of request: %s", resp.Status)
1976+
return nil, err
1977+
}
1978+
1979+
return &proto.LoadResponse{FirecrackerPID: strconv.Itoa(s.firecrackerPid)}, nil
1980+
}
1981+
1982+
// CreateSnapshot Creates a snapshot of a VM
1983+
func (s *service) CreateSnapshot(ctx context.Context, req *proto.CreateSnapshotRequest) (*empty.Empty, error) {
1984+
createSnapReq, err := formCreateSnapReq(req.SnapshotFilePath, req.MemFilePath)
1985+
if err != nil {
1986+
s.logger.WithError(err).Error("Failed to create make snapshot request")
1987+
return nil, err
1988+
}
1989+
1990+
resp, err := s.httpControlClient.Do(createSnapReq)
1991+
if err != nil {
1992+
s.logger.WithError(err).Error("Failed to send make snapshot request")
1993+
return nil, err
1994+
}
1995+
if !strings.Contains(resp.Status, "204") {
1996+
s.logger.WithError(err).Error("Failed to make snapshot of VM")
1997+
return nil, err
1998+
}
1999+
2000+
return &empty.Empty{}, nil
2001+
}
2002+
2003+
// Offload Shuts down a VM and deletes the corresponding firecracker socket
2004+
// and vsock. All of the other resources will persist
2005+
func (s *service) Offload(ctx context.Context, req *proto.OffloadRequest) (*empty.Empty, error) {
2006+
if err := syscall.Kill(s.firecrackerPid, 9); err != nil {
2007+
s.logger.WithError(err).Error("Failed to kill firecracker process")
2008+
return nil, err
2009+
}
2010+
2011+
if err := os.RemoveAll(s.shimDir.FirecrackerSockPath()); err != nil {
2012+
s.logger.WithError(err).Error("Failed to delete firecracker socket")
2013+
return nil, err
2014+
}
2015+
2016+
if err := os.RemoveAll(s.shimDir.FirecrackerVSockPath()); err != nil {
2017+
s.logger.WithError(err).Error("Failed to delete firecracker vsock")
2018+
return nil, err
2019+
}
2020+
2021+
if err := os.RemoveAll(s.shimDir.FirecrackerUPFSockPath()); err != nil {
2022+
s.logger.WithError(err).Error("Failed to delete firecracker UPF socket")
2023+
return nil, err
2024+
}
2025+
2026+
return &empty.Empty{}, nil
2027+
}

0 commit comments

Comments
 (0)