Update.
This commit is contained in:
		
							parent
							
								
									d3c0e138d8
								
							
						
					
					
						commit
						da9566c11f
					
				@ -233,8 +233,6 @@ class PushService(BaseService):
 | 
			
		||||
                        print(
 | 
			
		||||
                            f"Failed to send notification to user {user_uid} via endpoint {endpoint}: {response.status}"
 | 
			
		||||
                        )
 | 
			
		||||
            else:
 | 
			
		||||
                print(f"No push subscriptions found for user {user_uid}")
 | 
			
		||||
 | 
			
		||||
    async def register(
 | 
			
		||||
        self, user_uid: str, endpoint: str, key_auth: str, key_p256dh: str
 | 
			
		||||
 | 
			
		||||
@ -52,14 +52,12 @@ self.addEventListener("notificationclose", (event) => {
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
self.addEventListener("fetch", (event) => {
 | 
			
		||||
    // console.log("Fetch event for ", event.request.url);
 | 
			
		||||
    event.respondWith(
 | 
			
		||||
        caches.match(event.request).then((response) => {
 | 
			
		||||
            if (response) {
 | 
			
		||||
                // console.log("Found response in cache: ", response);
 | 
			
		||||
                return response;
 | 
			
		||||
            }
 | 
			
		||||
            // console.log("No response found in cache. About to fetch from network...");
 | 
			
		||||
            return fetch(event.request);
 | 
			
		||||
        })
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
@ -39,7 +39,6 @@ class ComposeFileManager:
 | 
			
		||||
            loop = asyncio.get_event_loop()
 | 
			
		||||
            while True:
 | 
			
		||||
                line = await loop.run_in_executor(None,os.read,stream,1024)
 | 
			
		||||
                print("XXX",line)
 | 
			
		||||
                if not line:
 | 
			
		||||
                    break
 | 
			
		||||
                await event_handler(container_name,"stdout",line)
 | 
			
		||||
@ -117,13 +116,12 @@ class ComposeFileManager:
 | 
			
		||||
        )
 | 
			
		||||
        stdout, _ = await proc.communicate()
 | 
			
		||||
        running_services = stdout.decode().split()
 | 
			
		||||
        print(running_services)
 | 
			
		||||
        return "running" if name in running_services else "stopped"
 | 
			
		||||
 | 
			
		||||
    async def write_stdin(self, name, data):
 | 
			
		||||
        await self.event_handler(name, "stdin", data)
 | 
			
		||||
        proc = self.running_instances.get(name)
 | 
			
		||||
        print("Found proc:",proc)
 | 
			
		||||
        print(name,data)
 | 
			
		||||
        if not proc:
 | 
			
		||||
            return False 
 | 
			
		||||
        try:
 | 
			
		||||
@ -177,11 +175,9 @@ class ComposeFileManager:
 | 
			
		||||
            stderr=asyncio.subprocess.PIPE,
 | 
			
		||||
        )
 | 
			
		||||
        stdout,stderr = await proc.communicate()
 | 
			
		||||
        print(stdout, stderr)
 | 
			
		||||
        if proc.returncode != 0:
 | 
			
		||||
            print(f"Failed to start {name}: {stderr.decode(errors='ignore')}")
 | 
			
		||||
            return False 
 | 
			
		||||
 | 
			
		||||
        master, slave = pty.openpty()
 | 
			
		||||
        proc = await asyncio.create_subprocess_exec(
 | 
			
		||||
            "docker", "compose", "-f", self.compose_path, "exec", name, "/bin/bash",
 | 
			
		||||
@ -189,25 +185,8 @@ class ComposeFileManager:
 | 
			
		||||
            stdout=slave,
 | 
			
		||||
            stderr=slave,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        proc = {'proc':proc,'master':master,'slave':slave}
 | 
			
		||||
#        stdin,stderr = await proc.communicate()
 | 
			
		||||
        proc = {'proc': proc, 'master': master, 'slave': slave}
 | 
			
		||||
        self.running_instances[name] = proc
 | 
			
		||||
        #if stdout:
 | 
			
		||||
        #    await self.event_handler(name, "stdout", stdout)
 | 
			
		||||
        #if stderr:
 | 
			
		||||
        #    await self.event_handler(name,"stdout",stderr)
 | 
			
		||||
 | 
			
		||||
        await self._create_readers(name)
 | 
			
		||||
        
 | 
			
		||||
        return True
 | 
			
		||||
        #return stdout and stdout.decode(errors="ignore") or stderr.decode(errors="ignore")
 | 
			
		||||
 | 
			
		||||
# Example usage:
 | 
			
		||||
# mgr = ComposeFileManager()
 | 
			
		||||
# mgr.create_instance('web', 'nginx:latest', cpus=1, memory='512m', ports={80:8080}, volumes=['./data:/data'])
 | 
			
		||||
# print(mgr.list_instances())
 | 
			
		||||
# mgr.duplicate_instance('web', 'web_copy')
 | 
			
		||||
# mgr.remove_instance('web_copy')
 | 
			
		||||
# await mgr.start('web')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -79,7 +79,7 @@
 | 
			
		||||
      app.channelUid = '{{ channel.uid.value }}'
 | 
			
		||||
 | 
			
		||||
      window.getContainer = function(){
 | 
			
		||||
        return new Container(app.channelUid,true)
 | 
			
		||||
        return new Container(app.channelUid,false)
 | 
			
		||||
      }
 | 
			
		||||
        {% endif %}
 | 
			
		||||
let installPrompt = null 
 | 
			
		||||
@ -93,7 +93,6 @@ let installPrompt = null
 | 
			
		||||
            
 | 
			
		||||
            button.addEventListener("click", async ()=>{  
 | 
			
		||||
                const result = await installPrompt.prompt()
 | 
			
		||||
                console.info(result.outcome)
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
@ -389,6 +389,7 @@ class RPCView(BaseView):
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
        async def _send_json(self, obj):
 | 
			
		||||
            if not self.ws.closed:
 | 
			
		||||
                await self.ws.send_str(json.dumps(obj, default=str))
 | 
			
		||||
 | 
			
		||||
        async def get_online_users(self, channel_uid):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user