Locust-file

import shutil

import os

from pathlib import Path

import time

from locust import User, task, between

import os

import re

import glob, os

import random

import os.path

import traceback

import sys

from P4 import P4

import subprocess

from locust import User, TaskSet, constant

import codecs  

import locust_plugins


class Test:

    def connect(self,user):

        try:

         p4.user = user

         p4.password ="User123#"

         cmd=p4.connect()

         print(cmd)

        except:

         print ("An error occurred")

         traceback.print_exception(*sys.exc_info())


    def addsubmit(self,user,client):

        arr=random.randint(0, 4)

        p4.user=user

        callbash=subprocess.Popen(["/home/perforce/creatfiles.sh", user,client,"add"])

        callbash.wait()

        client_dir="/home/perforce/" + client

        os.chdir(client_dir)

        p4client=user + "-" + client + "*"

        p4.user=user

        p4.password ="User123#"

        p4.client = client

        flag=0

        for file in glob.glob(p4client):   

            flag=1

            file = client + "/" + file

            cmd = p4.run("add",file)

            #print(cmd)

        if (flag == 1):

         scmd = p4.run("submit", "-d AddSubmit")

        else:

          self.addsubmit(user,client)  


    def editsubmit(self,user,client):

        p4.user=user

        client_dir="/home/perforce/" + client

        os.chdir(client_dir)

        p4client=user + "-" + client + "*"

        p4.user=user

        p4.password ="User123#"

        p4.client = client

        flag=0

        for file in glob.glob(p4client):   

            flag=1

            file = client + "/" + file

            cmd = p4.run("edit",file)

            print(cmd)

        if (flag == 1):

         scmd = p4.run("submit", "-d EditSubmit")

        else:

          self.addsubmit(user,client)  

    

    def deletesubmit(self,user,client):

        client_dir="/home/perforce/" + client

        os.chdir(client_dir)

        p4client=user + "-" + client + "*"

        p4.password ="User123#"

        print(p4client)

        flag=0

        file=subprocess.Popen(["/home/perforce/get-del-file.sh", client.split('-')[0]], stdout=subprocess.PIPE).communicate()[0]

        str= codecs.decode(file, 'UTF-8').strip()

        client=str.split('-')[1] + "-" + str.split('-')[2]

        p4.client=client

        p4.user=user

        str = client + "/"  +str

        dcmd = p4.run("delete",str)

        if dcmd.count("already")>0:

         self.deletesubmit(user,client)

        time.sleep(2)

        scmd = p4.run("submit", "-d DeleteSubmit")



   

    def revert(self,user,client):

        p4.user=user

        callbash=subprocess.Popen(["/home/perforce/creatfiles.sh", user,client,"revert"])

        callbash.wait()

        client_dir="/home/perforce/" + client

        os.chdir(client_dir)

        p42ndclient=user + "-" + client + "-" + "*revert*"

        p4.user=user

        p4.password ="User123#"

        p4.client = client

        print(p42ndclient)

        flag=0

        filelist=[]

        for file in glob.glob(p42ndclient):

            flag=1

            file = client + "/" + file

            cmd = p4.run("add",file)

            if cmd.count("existing")>0:

              print("delete thsi fule Found!")

              self.revert(user,client)

            #print(cmd)

            filelist.append(file)

        if (flag == 1):

         for f in filelist:

          scmd = p4.run("revert", f)

          print(scmd)

          os.remove("/home/perforce/"+f)

        else:

          self.revert(user,client)


    def disconnect(self,user,p4clients):

 

         for name in p4clients:

          dir = "/home/perforce/"+ name

          filelist = glob.glob(os.path.join(dir, "*"))

          for f in filelist:

             print("file deleted ", f)

             os.remove(f)

         try:

          p4.user = user

          p4.password ="User123#"

          cmd=p4.disconnect()

          print(cmd)

         except:

          print ("An error occurred")

          traceback.print_exception(*sys.exc_info())


p4=P4()


fd=5

class AddFiles(User):

#class AddFiles(TaskSet):

    t1=Test()

    p4clients= ["p4cli-client1","p4cli-client2","p4cli-client3","p4cli-client4","p4cli-client5"]

    p4users= ["user1","user2","user3","user4","user5","user6","user7","user8","user9","user10","user11","user12","user13","user14","user15"]

    uarr=0

    carr=0

    def on_start(self):

        os.environ["P4PASSWD"]="User123#"

        self.carr=random.randint(0, 4)

        self.uarr=random.randint(0, 10)

        self.t1.connect(self.p4users[self.uarr])


    @task(3)

    def add_files(self):

       self.t1.addsubmit(self.p4users[self.uarr],self.p4clients[self.carr])

       #print(self.p4users[self.uarr]," - " ,self.p4clients[self.carr])

       time.sleep(2)


    @task

    def edit_files(self):

       self.t1.editsubmit(self.p4users[self.uarr],self.p4clients[self.carr])

       time.sleep(2)


    @task

    def delete_files(self):

       self.t1.deletesubmit(self.p4users[self.uarr],self.p4clients[self.carr])

       time.sleep(2)


    @task

    def revert(self):

       self.t1.revert(self.p4users[self.uarr],self.p4clients[self.carr])

       time.sleep(2)


    def on_stop(self):

        self.t1.disconnect(self.p4users[self.uarr],self.p4clients)

Comments

Popular posts from this blog

Ladies Prayer Arrangement - Pune

Collection of Fatwa - Save Income tax in India

5-10 Year Strategy for Social, Religious and Economic Development of Indian Muslims