358 lines
13 KiB
Markdown
358 lines
13 KiB
Markdown
<!-- Code generated by gomarkdoc. DO NOT EDIT -->
|
|
|
|
# client
|
|
|
|
```go
|
|
import "github.com/Akilan1999/p2p-rendering-computation/client"
|
|
```
|
|
|
|
## Index
|
|
|
|
- [func AddTrackContainer\(d \*docker.DockerVM, ipAddress string\) error](<#AddTrackContainer>)
|
|
- [func CheckID\(ID string\) \(string, error\)](<#CheckID>)
|
|
- [func GetServerPort\(IpAddress string\) \(string, error\)](<#GetServerPort>)
|
|
- [func GetSpecs\(IP string\) \(\*server.SysInfo, error\)](<#GetSpecs>)
|
|
- [func PrettyPrint\(data interface\{\}\)](<#PrettyPrint>)
|
|
- [func RemoveContainerGroups\(ContainerID string\) error](<#RemoveContainerGroups>)
|
|
- [func RemoveContianer\(IP string, ID string\) error](<#RemoveContianer>)
|
|
- [func RemoveGroup\(GroupID string\) error](<#RemoveGroup>)
|
|
- [func RemoveTrackedContainer\(id string\) error](<#RemoveTrackedContainer>)
|
|
- [func StartContainer\(IP string, NumPorts int, GPU bool, ContainerName string, baseImage string\) \(\*docker.DockerVM, error\)](<#StartContainer>)
|
|
- [func ViewContainers\(IP string\) \(\*docker.DockerContainers, error\)](<#ViewContainers>)
|
|
- [type Group](<#Group>)
|
|
- [func AddContainerToGroup\(ContainerID string, GroupID string\) \(\*Group, error\)](<#AddContainerToGroup>)
|
|
- [func CreateGroup\(\) \(\*Group, error\)](<#CreateGroup>)
|
|
- [func GetGroup\(GroupID string\) \(\*Group, error\)](<#GetGroup>)
|
|
- [func RemoveContainerGroup\(ContainerID string, GroupID string\) \(\*Group, error\)](<#RemoveContainerGroup>)
|
|
- [func \(grp \*Group\) AddContainer\(Container \*TrackContainer\) error](<#Group.AddContainer>)
|
|
- [func \(grp \*Group\) AddGroupToFile\(\) error](<#Group.AddGroupToFile>)
|
|
- [func \(grp \*Group\) RemoveContainerGroup\(Container \*TrackContainer\) error](<#Group.RemoveContainerGroup>)
|
|
- [type Groups](<#Groups>)
|
|
- [func ReadGroup\(\) \(\*Groups, error\)](<#ReadGroup>)
|
|
- [func \(grp \*Groups\) RemoveContainerGroups\(Container \*TrackContainer\) error](<#Groups.RemoveContainerGroups>)
|
|
- [func \(grp \*Groups\) WriteGroup\(\) error](<#Groups.WriteGroup>)
|
|
- [type ResponseMAPPort](<#ResponseMAPPort>)
|
|
- [func MAPPort\(port string, domainName string\) \(\*ResponseMAPPort, error\)](<#MAPPort>)
|
|
- [type TrackContainer](<#TrackContainer>)
|
|
- [func GetContainerInformation\(ID string\) \(\*TrackContainer, error\)](<#GetContainerInformation>)
|
|
- [func \(TC \*TrackContainer\) ModifyContainerGroups\(\) error](<#TrackContainer.ModifyContainerGroups>)
|
|
- [func \(TC \*TrackContainer\) ModifyContainerInformation\(\) error](<#TrackContainer.ModifyContainerInformation>)
|
|
- [type TrackContainers](<#TrackContainers>)
|
|
- [func ReadTrackContainers\(filename string\) \(\*TrackContainers, error\)](<#ReadTrackContainers>)
|
|
- [func ViewTrackedContainers\(\) \(error, \*TrackContainers\)](<#ViewTrackedContainers>)
|
|
- [func \(TC \*TrackContainers\) WriteContainers\(\) error](<#TrackContainers.WriteContainers>)
|
|
|
|
|
|
<a name="AddTrackContainer"></a>
|
|
## func [AddTrackContainer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L26>)
|
|
|
|
```go
|
|
func AddTrackContainer(d *docker.DockerVM, ipAddress string) error
|
|
```
|
|
|
|
AddTrackContainer Adds new container which has been added to the track container
|
|
|
|
<a name="CheckID"></a>
|
|
## func [CheckID](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L212>)
|
|
|
|
```go
|
|
func CheckID(ID string) (string, error)
|
|
```
|
|
|
|
CheckID Checks if the ID belongs to a group or a single container
|
|
|
|
<a name="GetServerPort"></a>
|
|
## func [GetServerPort](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/container.go#L170>)
|
|
|
|
```go
|
|
func GetServerPort(IpAddress string) (string, error)
|
|
```
|
|
|
|
GetServerPort Helper function to do find out server port information
|
|
|
|
<a name="GetSpecs"></a>
|
|
## func [GetSpecs](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/ServerSpecs.go#L14>)
|
|
|
|
```go
|
|
func GetSpecs(IP string) (*server.SysInfo, error)
|
|
```
|
|
|
|
GetSpecs Gets Specs from the server such CPU, GPU usage and other basic information which helps set a cluster of computer
|
|
|
|
<a name="PrettyPrint"></a>
|
|
## func [PrettyPrint](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/ServerSpecs.go#L54>)
|
|
|
|
```go
|
|
func PrettyPrint(data interface{})
|
|
```
|
|
|
|
PrettyPrint print the contents of the obj \( Reference: https://stackoverflow.com/questions/24512112/how-to-print-struct-variables-in-console
|
|
|
|
<a name="RemoveContainerGroups"></a>
|
|
## func [RemoveContainerGroups](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L139>)
|
|
|
|
```go
|
|
func RemoveContainerGroups(ContainerID string) error
|
|
```
|
|
|
|
RemoveContainerGroups Remove Container from groups \(i.e which ever groups has information about that container\). This is mostly called when a container is deleted or removed from the tracked container list
|
|
|
|
<a name="RemoveContianer"></a>
|
|
## func [RemoveContianer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/container.go#L84>)
|
|
|
|
```go
|
|
func RemoveContianer(IP string, ID string) error
|
|
```
|
|
|
|
RemoveContianer Stops and removes container from the server
|
|
|
|
<a name="RemoveGroup"></a>
|
|
## func [RemoveGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L47>)
|
|
|
|
```go
|
|
func RemoveGroup(GroupID string) error
|
|
```
|
|
|
|
RemoveGroup Removes group based on the group ID provided
|
|
|
|
<a name="RemoveTrackedContainer"></a>
|
|
## func [RemoveTrackedContainer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L82>)
|
|
|
|
```go
|
|
func RemoveTrackedContainer(id string) error
|
|
```
|
|
|
|
RemoveTrackedContainer This function removos tracked container from the trackcontainer JSON file
|
|
|
|
<a name="StartContainer"></a>
|
|
## func [StartContainer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/container.go#L24>)
|
|
|
|
```go
|
|
func StartContainer(IP string, NumPorts int, GPU bool, ContainerName string, baseImage string) (*docker.DockerVM, error)
|
|
```
|
|
|
|
StartContainer Start container using REST api Implementation From the selected server IP address TODO: Test cases for this function Calls URL ex: http://0.0.0.0:8088/startcontainer?ports=0&GPU=false&ContainerName=docker-ubuntu-sshd
|
|
|
|
<a name="ViewContainers"></a>
|
|
## func [ViewContainers](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/container.go#L130>)
|
|
|
|
```go
|
|
func ViewContainers(IP string) (*docker.DockerContainers, error)
|
|
```
|
|
|
|
ViewContainers This function displays all containers available on server side
|
|
|
|
<a name="Group"></a>
|
|
## type [Group](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L18-L24>)
|
|
|
|
Group Information about a single group
|
|
|
|
```go
|
|
type Group struct {
|
|
ID string `json:"ID"`
|
|
TrackContainerList []*TrackContainer `json:"TrackContainer"`
|
|
// contains filtered or unexported fields
|
|
}
|
|
```
|
|
|
|
<a name="AddContainerToGroup"></a>
|
|
### func [AddContainerToGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L73>)
|
|
|
|
```go
|
|
func AddContainerToGroup(ContainerID string, GroupID string) (*Group, error)
|
|
```
|
|
|
|
AddContainerToGroup Adds container information to the Group based on the Group ID
|
|
|
|
<a name="CreateGroup"></a>
|
|
### func [CreateGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L27>)
|
|
|
|
```go
|
|
func CreateGroup() (*Group, error)
|
|
```
|
|
|
|
CreateGroup Creates a new group to add a set of track containers
|
|
|
|
<a name="GetGroup"></a>
|
|
### func [GetGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L166>)
|
|
|
|
```go
|
|
func GetGroup(GroupID string) (*Group, error)
|
|
```
|
|
|
|
GetGroup Gets group information based on group id provided
|
|
|
|
<a name="RemoveContainerGroup"></a>
|
|
### func [RemoveContainerGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L104>)
|
|
|
|
```go
|
|
func RemoveContainerGroup(ContainerID string, GroupID string) (*Group, error)
|
|
```
|
|
|
|
RemoveContainerGroup Remove Container from the group ID specified
|
|
|
|
<a name="Group.AddContainer"></a>
|
|
### func \(\*Group\) [AddContainer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L250>)
|
|
|
|
```go
|
|
func (grp *Group) AddContainer(Container *TrackContainer) error
|
|
```
|
|
|
|
AddContainer Adds a container to the Tracked container list of the group
|
|
|
|
<a name="Group.AddGroupToFile"></a>
|
|
### func \(\*Group\) [AddGroupToFile](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L186>)
|
|
|
|
```go
|
|
func (grp *Group) AddGroupToFile() error
|
|
```
|
|
|
|
AddGroupToFile Adds Group struct to the GroupTrackContainer File
|
|
|
|
<a name="Group.RemoveContainerGroup"></a>
|
|
### func \(\*Group\) [RemoveContainerGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L256>)
|
|
|
|
```go
|
|
func (grp *Group) RemoveContainerGroup(Container *TrackContainer) error
|
|
```
|
|
|
|
RemoveContainerGroup Removes container information from the group
|
|
|
|
<a name="Groups"></a>
|
|
## type [Groups](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L13-L15>)
|
|
|
|
Groups Data Structure type
|
|
|
|
```go
|
|
type Groups struct {
|
|
GroupList []*Group `json:"Groups"`
|
|
}
|
|
```
|
|
|
|
<a name="ReadGroup"></a>
|
|
### func [ReadGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L207>)
|
|
|
|
```go
|
|
func ReadGroup() (*Groups, error)
|
|
```
|
|
|
|
ReadGroup Function reads grouptrackcontainers.json and converts result to Groups
|
|
|
|
<a name="Groups.RemoveContainerGroups"></a>
|
|
### func \(\*Groups\) [RemoveContainerGroups](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L268>)
|
|
|
|
```go
|
|
func (grp *Groups) RemoveContainerGroups(Container *TrackContainer) error
|
|
```
|
|
|
|
RemoveContainerGroups removes container found in all groups
|
|
|
|
<a name="Groups.WriteGroup"></a>
|
|
### func \(\*Groups\) [WriteGroup](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L231>)
|
|
|
|
```go
|
|
func (grp *Groups) WriteGroup() error
|
|
```
|
|
|
|
WriteGroup Function to write type Groups to the grouptrackcontainers.json file
|
|
|
|
<a name="ResponseMAPPort"></a>
|
|
## type [ResponseMAPPort](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/MAPPort.go#L9-L11>)
|
|
|
|
|
|
|
|
```go
|
|
type ResponseMAPPort struct {
|
|
IPAddress string
|
|
}
|
|
```
|
|
|
|
<a name="MAPPort"></a>
|
|
### func [MAPPort](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/MAPPort.go#L13>)
|
|
|
|
```go
|
|
func MAPPort(port string, domainName string) (*ResponseMAPPort, error)
|
|
```
|
|
|
|
|
|
|
|
<a name="TrackContainer"></a>
|
|
## type [TrackContainer](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L19-L23>)
|
|
|
|
TrackContainer Stores information of current containers
|
|
|
|
```go
|
|
type TrackContainer struct {
|
|
Id string `json:"ID"`
|
|
Container *docker.DockerVM `json:"Container"`
|
|
IpAddress string `json:"IpAddress"`
|
|
}
|
|
```
|
|
|
|
<a name="GetContainerInformation"></a>
|
|
### func [GetContainerInformation](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L153>)
|
|
|
|
```go
|
|
func GetContainerInformation(ID string) (*TrackContainer, error)
|
|
```
|
|
|
|
GetContainerInformation gets information about container based on container ID provided
|
|
|
|
<a name="TrackContainer.ModifyContainerGroups"></a>
|
|
### func \(\*TrackContainer\) [ModifyContainerGroups](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/GroupTrackContainer.go#L285>)
|
|
|
|
```go
|
|
func (TC *TrackContainer) ModifyContainerGroups() error
|
|
```
|
|
|
|
ModifyContainerGroups Modifies container information is all groups available
|
|
|
|
<a name="TrackContainer.ModifyContainerInformation"></a>
|
|
### func \(\*TrackContainer\) [ModifyContainerInformation](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L170>)
|
|
|
|
```go
|
|
func (TC *TrackContainer) ModifyContainerInformation() error
|
|
```
|
|
|
|
ModifyContainerInformation Modifies information inside the container
|
|
|
|
<a name="TrackContainers"></a>
|
|
## type [TrackContainers](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L14-L16>)
|
|
|
|
TrackContainers This struct stores arrays of current containers running
|
|
|
|
```go
|
|
type TrackContainers struct {
|
|
TrackContainerList []TrackContainer `json:"TrackContainer"`
|
|
}
|
|
```
|
|
|
|
<a name="ReadTrackContainers"></a>
|
|
### func [ReadTrackContainers](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L134>)
|
|
|
|
```go
|
|
func ReadTrackContainers(filename string) (*TrackContainers, error)
|
|
```
|
|
|
|
ReadTrackContainers Reads containers which are currently tracked
|
|
|
|
<a name="ViewTrackedContainers"></a>
|
|
### func [ViewTrackedContainers](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L120>)
|
|
|
|
```go
|
|
func ViewTrackedContainers() (error, *TrackContainers)
|
|
```
|
|
|
|
ViewTrackedContainers View Containers currently tracked
|
|
|
|
<a name="TrackContainers.WriteContainers"></a>
|
|
### func \(\*TrackContainers\) [WriteContainers](<https://github.com/Akilan1999/p2p-rendering-computation/blob/master/client/TrackContainers.go#L195>)
|
|
|
|
```go
|
|
func (TC *TrackContainers) WriteContainers() error
|
|
```
|
|
|
|
WriteContainers Write information back to the config file
|
|
|
|
Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>)
|