fixed iptable directory changes

This commit is contained in:
2023-04-14 10:54:24 +01:00
parent 97d10918b1
commit 3bcba8a3e2
3 changed files with 130 additions and 128 deletions

View File

@@ -18,6 +18,9 @@ var CliAction = func(ctx *cli.Context) error {
fmt.Print(err) fmt.Print(err)
} }
//server.Rpc() //server.Rpc()
for {
}
} }
//Listing servers and also updates IP tables (Default 3 hops) //Listing servers and also updates IP tables (Default 3 hops)
@@ -135,7 +138,7 @@ var CliAction = func(ctx *cli.Context) error {
//Sets default paths to the config file //Sets default paths to the config file
if SetDefaultConfig { if SetDefaultConfig {
_, err := generate.SetDefaults("P2PRC", false, nil, true) _, err := generate.SetDefaults("P2PRC", false, nil, false)
if err != nil { if err != nil {
fmt.Print(err) fmt.Print(err)
} }

View File

@@ -1,164 +1,163 @@
package generate package generate
import ( import (
"github.com/Akilan1999/p2p-rendering-computation/p2p" "github.com/Akilan1999/p2p-rendering-computation/p2p"
"github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5"
"os" "os"
) )
// GenerateFiles Generates all the files needed to setup P2PRC // GenerateFiles Generates all the files needed to setup P2PRC
func GenerateFiles(rootNodes ...p2p.IpAddress) (err error) { func GenerateFiles(rootNodes ...p2p.IpAddress) (err error) {
err = GenerateIPTableFile(rootNodes) err = GenerateIPTableFile(rootNodes)
err = GenerateDockerFiles() err = GenerateDockerFiles()
err = GeneratePluginDirectory() err = GeneratePluginDirectory()
err = GenerateClientTrackContainers() err = GenerateClientTrackContainers()
return return
} }
// GenerateIPTableFile Generates the IPTable file with the appropirate root node // GenerateIPTableFile Generates the IPTable file with the appropirate root node
func GenerateIPTableFile(rootNodes []p2p.IpAddress) (err error) { func GenerateIPTableFile(rootNodes []p2p.IpAddress) (err error) {
var rootnodes p2p.IpAddresses var rootnodes p2p.IpAddresses
var rootnode p2p.IpAddress var rootnode p2p.IpAddress
err = CreateIPTableFolderStructure() err = CreateIPTableFolderStructure()
if err != nil { if err != nil {
return err return err
} }
// If root node addresses are not provided as optional parameters // If root node addresses are not provided as optional parameters
if len(rootNodes) <= 0 { if len(rootNodes) <= 0 {
rootnode.Name = "Node1" rootnode.Name = "Node1"
rootnode.ServerPort = "8088" rootnode.ServerPort = "8088"
rootnode.NAT = "False" rootnode.NAT = "False"
rootnode.Ipv4 = "64.227.168.102" rootnode.Ipv4 = "64.227.168.102"
rootnodes.IpAddress = append(rootnodes.IpAddress, rootnode) rootnodes.IpAddress = append(rootnodes.IpAddress, rootnode)
} else { } else {
// if root nodes are provided then override them as the optional parameter // if root nodes are provided then override them as the optional parameter
for i := range rootNodes { for i := range rootNodes {
rootnodes.IpAddress = append(rootnodes.IpAddress, rootNodes[i]) rootnodes.IpAddress = append(rootnodes.IpAddress, rootNodes[i])
} }
} }
err = rootnodes.WriteIpTable() err = rootnodes.WriteIpTable()
return return
} }
// CreateIPTableFolderStructure Create folder structure for IPTable // CreateIPTableFolderStructure Create folder structure for IPTable
func CreateIPTableFolderStructure() (err error) { func CreateIPTableFolderStructure() (err error) {
path, err := GetCurrentPath() path, err := GetCurrentPath()
if err != nil { if err != nil {
return err return err
} }
if _, err = os.Stat(path + "p2p"); os.IsNotExist(err) { if _, err = os.Stat(path + "p2p"); os.IsNotExist(err) {
if err = os.Mkdir(path+"p2p", os.ModePerm); err != nil { if err = os.Mkdir(path+"p2p", os.ModePerm); err != nil {
return err return err
} }
if _, err = os.Stat(path + "p2p/iptable"); os.IsNotExist(err) { }
if err = os.Mkdir(path+"p2p/iptable", os.ModePerm); err != nil { if _, err = os.Stat(path + "p2p/iptable"); os.IsNotExist(err) {
return err if err = os.Mkdir(path+"p2p/iptable", os.ModePerm); err != nil {
} return err
} }
if _, err = os.Stat(path + "p2p/iptable/ip_table.json"); os.IsNotExist(err) { }
_, err = os.Create(path + "p2p/iptable/ip_table.json") if _, err = os.Stat(path + "p2p/iptable/ip_table.json"); os.IsNotExist(err) {
if err != nil { _, err = os.Create(path + "p2p/iptable/ip_table.json")
return err if err != nil {
} return err
} }
}
} return
return
} }
// GenerateDockerFiles Generate default docker files // GenerateDockerFiles Generate default docker files
func GenerateDockerFiles() (err error) { func GenerateDockerFiles() (err error) {
path, err := GetCurrentPath() path, err := GetCurrentPath()
if err != nil { if err != nil {
return err return err
} }
if _, err = os.Stat(path + "server"); os.IsNotExist(err) { if _, err = os.Stat(path + "server"); os.IsNotExist(err) {
if err = os.Mkdir(path+"server", os.ModePerm); err != nil { if err = os.Mkdir(path+"server", os.ModePerm); err != nil {
return err return err
} }
if _, err = os.Stat(path + "server/docker"); os.IsNotExist(err) { if _, err = os.Stat(path + "server/docker"); os.IsNotExist(err) {
if err = os.Mkdir(path+"server/docker", os.ModePerm); err != nil { if err = os.Mkdir(path+"server/docker", os.ModePerm); err != nil {
return err return err
} }
} }
if _, err = os.Stat(path + "server/docker/containers"); os.IsNotExist(err) { if _, err = os.Stat(path + "server/docker/containers"); os.IsNotExist(err) {
if err = os.Mkdir(path+"server/docker/containers", os.ModePerm); err != nil { if err = os.Mkdir(path+"server/docker/containers", os.ModePerm); err != nil {
return err return err
} }
} }
if _, err = os.Stat(path + "server/docker/containers"); os.IsNotExist(err) { if _, err = os.Stat(path + "server/docker/containers"); os.IsNotExist(err) {
if err = os.Mkdir(path+"server/docker/containers", os.ModePerm); err != nil { if err = os.Mkdir(path+"server/docker/containers", os.ModePerm); err != nil {
return err return err
} }
} }
if _, err = os.Stat(path + "server/docker/containers/docker-ubuntu-sshd"); os.IsNotExist(err) { if _, err = os.Stat(path + "server/docker/containers/docker-ubuntu-sshd"); os.IsNotExist(err) {
if err = os.Mkdir(path+"server/docker/containers/docker-ubuntu-sshd", os.ModePerm); err != nil { if err = os.Mkdir(path+"server/docker/containers/docker-ubuntu-sshd", os.ModePerm); err != nil {
return err return err
} }
} }
} }
// Clone base docker image // Clone base docker image
_, err = git.PlainClone(path+"server/docker/containers/docker-ubuntu-sshd", false, &git.CloneOptions{ _, err = git.PlainClone(path+"server/docker/containers/docker-ubuntu-sshd", false, &git.CloneOptions{
URL: "https://github.com/Akilan1999/docker-ubuntu-sshd", URL: "https://github.com/Akilan1999/docker-ubuntu-sshd",
Progress: os.Stdout, Progress: os.Stdout,
}) })
if err != nil { if err != nil {
return err return err
} }
return return
} }
// GeneratePluginDirectory Generates plugin directory structure // GeneratePluginDirectory Generates plugin directory structure
func GeneratePluginDirectory() (err error) { func GeneratePluginDirectory() (err error) {
path, err := GetCurrentPath() path, err := GetCurrentPath()
if err != nil { if err != nil {
return err return err
} }
if _, err = os.Stat(path + "plugin"); os.IsNotExist(err) { if _, err = os.Stat(path + "plugin"); os.IsNotExist(err) {
if err = os.Mkdir(path+"plugin", os.ModePerm); err != nil { if err = os.Mkdir(path+"plugin", os.ModePerm); err != nil {
return err return err
} }
if _, err = os.Stat(path + "plugin/deploy"); os.IsNotExist(err) { if _, err = os.Stat(path + "plugin/deploy"); os.IsNotExist(err) {
if err = os.Mkdir(path+"plugin/deploy", os.ModePerm); err != nil { if err = os.Mkdir(path+"plugin/deploy", os.ModePerm); err != nil {
return err return err
} }
} }
} }
return return
} }
func GenerateClientTrackContainers() (err error) { func GenerateClientTrackContainers() (err error) {
path, err := GetCurrentPath() path, err := GetCurrentPath()
if err != nil { if err != nil {
return err return err
} }
if _, err = os.Stat(path + "client"); os.IsNotExist(err) { if _, err = os.Stat(path + "client"); os.IsNotExist(err) {
if err = os.Mkdir(path+"client", os.ModePerm); err != nil { if err = os.Mkdir(path+"client", os.ModePerm); err != nil {
return err return err
} }
if _, err = os.Stat(path + "client/trackcontainers.json"); os.IsNotExist(err) { if _, err = os.Stat(path + "client/trackcontainers.json"); os.IsNotExist(err) {
_, err = os.Create(path + "client/trackcontainers.json") _, err = os.Create(path + "client/trackcontainers.json")
if err != nil { if err != nil {
return err return err
} }
} }
if _, err = os.Stat(path + "client/grouptrackcontainers.json"); os.IsNotExist(err) { if _, err = os.Stat(path + "client/grouptrackcontainers.json"); os.IsNotExist(err) {
_, err = os.Create(path + "client/grouptrackcontainers.json") _, err = os.Create(path + "client/grouptrackcontainers.json")
if err != nil { if err != nil {
return err return err
} }
} }
} }
return return
} }

View File

@@ -2,7 +2,7 @@
"ip_address": [ "ip_address": [
{ {
"Name": "Node1", "Name": "Node1",
"IPV4": "64.227.168.102", "IPV4": "164.90.177.167",
"IPV6": "", "IPV6": "",
"Latency": 0, "Latency": 0,
"ServerPort": "8088", "ServerPort": "8088",