OXIESEC PANEL
- Current Dir:
/
/
snap
/
certbot-dns-digitalocean
/
4356
/
lib
/
python3.12
/
site-packages
/
digitalocean
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/12/2025 06:18:03 PM
rwxr-xr-x
📄
Account.py
904 bytes
06/12/2025 06:17:59 PM
rw-r--r--
📄
Action.py
2.22 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Balance.py
847 bytes
06/12/2025 06:17:59 PM
rw-r--r--
📄
Certificate.py
4.28 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Domain.py
5.22 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Droplet.py
20.65 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Firewall.py
8.26 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
FloatingIP.py
3.02 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Image.py
5.55 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Kernel.py
328 bytes
06/12/2025 06:17:59 PM
rw-r--r--
📄
LoadBalancer.py
15.47 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Manager.py
14.09 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Metadata.py
1.3 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Project.py
4.91 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Record.py
3.92 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Region.py
386 bytes
06/12/2025 06:17:59 PM
rw-r--r--
📄
SSHKey.py
2.55 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Size.py
453 bytes
06/12/2025 06:17:59 PM
rw-r--r--
📄
Snapshot.py
1.17 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Tag.py
5.71 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
VPC.py
3.73 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
Volume.py
6.62 KB
06/12/2025 06:17:59 PM
rw-r--r--
📄
__init__.py
1.1 KB
06/12/2025 06:17:59 PM
rw-r--r--
📁
__pycache__
-
06/12/2025 06:18:03 PM
rwxr-xr-x
📄
baseapi.py
7.94 KB
06/12/2025 06:17:59 PM
rw-r--r--
Editing: SSHKey.py
Close
# -*- coding: utf-8 -*- from .baseapi import BaseAPI, GET, POST, DELETE, PUT class SSHKey(BaseAPI): def __init__(self, *args, **kwargs): self.id = "" self.name = None self.public_key = None self.fingerprint = None super(SSHKey, self).__init__(*args, **kwargs) @classmethod def get_object(cls, api_token, ssh_key_id): """ Class method that will return a SSHKey object by ID. """ ssh_key = cls(token=api_token, id=ssh_key_id) ssh_key.load() return ssh_key def load(self): """ Load the SSHKey object from DigitalOcean. Requires either self.id or self.fingerprint to be set. """ identifier = None if self.id: identifier = self.id elif self.fingerprint is not None: identifier = self.fingerprint data = self.get_data("account/keys/%s" % identifier, type=GET) ssh_key = data['ssh_key'] # Setting the attribute values for attr in ssh_key.keys(): setattr(self, attr, ssh_key[attr]) self.id = ssh_key['id'] def load_by_pub_key(self, public_key): """ This method will load a SSHKey object from DigitalOcean from a public_key. This method will avoid problems like uploading the same public_key twice. """ data = self.get_data("account/keys/") for jsoned in data['ssh_keys']: if jsoned.get('public_key', "") == public_key: self.id = jsoned['id'] self.load() return self return None def create(self): """ Create the SSH Key """ input_params = { "name": self.name, "public_key": self.public_key, } data = self.get_data("account/keys/", type=POST, params=input_params) if data: self.id = data['ssh_key']['id'] def edit(self): """ Edit the SSH Key """ input_params = { "name": self.name, "public_key": self.public_key, } data = self.get_data( "account/keys/%s" % self.id, type=PUT, params=input_params ) if data: self.id = data['ssh_key']['id'] def destroy(self): """ Destroy the SSH Key """ return self.get_data("account/keys/%s" % self.id, type=DELETE) def __str__(self): return "<SSHKey: %s %s>" % (self.id, self.name)