General OCI Client?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza revisando las interfaces existentes ComputeClient y AnalyticsClient y cómo los resultados de resource-search exponen los tipos y los identificadores de los recursos. Define el alcance de las operaciones comunes y cómo accederían los llamadores a los clientes específicos de cada servicio; el trabajo estará terminado cuando el cliente genérico propuesto admita las operaciones acordadas sin requerir clases wrapper por recurso.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
If you guys don't already have it, it would be awesome if there was a general OCI Client with at least the common methods in it, and maybe a way to expose the specific client.
I have a function app that runs on a schedule turning resources on and off based on tags. I created a class like this:
import oci
#Main Class
class OCIInstance:
def __init__(self, resource, oci_client):
self.resource = resource
self.oci_client = oci_client
def start(self):
raise NotImplementedError("Start not implemented for base class.")
def stop(self):
raise NotImplementedError("Stop not implemented for base class.")
#Implementations of it
class ComputeInstance(OCIInstance):
def start(self):
self.oci_client.instance_action(self.resource.identifier, 'START')
def stop(self):
self.oci_client.instance_action(self.resource.identifier, 'SOFTSTOP')
class AnalyticsInstance(OCIInstance):
def start(self):
self.oci_client.start_analytics_instance(self.resource.identifier)
def stop(self):
self.oci_client.stop_analytics_instance(self.resource.identifier)
#Factory for it
def instanceFactory(resource, signer):
resource_type = resource.resource_type
if resource_type == "Instance":
oci_client = oci.core.ComputeClient(config={}, signer=signer)
return ComputeInstance(resource, oci_client)
elif resource_type == "AnalyticsInstance":
oci_client = oci.analytics.AnalyticsClient(config={}, signer=signer)
return AnalyticsInstance(resource, oci_client)
# Add more types as needed
I then run a query like this query all resources where (definedTags.namespace = 'Schedule') and loop through the results adding them to a List of OCIInstance. I can then start and stop them from that list with a simple call to .start() or .stop().
This feels like a lot to do... it'd be way nicer if I could just call the client from the search results or if I could use a generic client for basic operations.
- Lenguaje dominante
- Python
- Estrellas
- 474
- Forks
- 321
- Merge medio
- 23 min
- PR fusionados (30 d)
- 4
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de oracle/oci-python-sdk
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
oracle/oci-python-sdk#890 · 3 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
oracle/oci-python-sdk#879 · 3 comentarios ·
-
Example uses non-existent API Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
oracle/oci-python-sdk#878 ·
-
SDK
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
oracle/oci-python-sdk#861 · 5 comentarios ·
-
SDK
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
oracle/oci-python-sdk#852 ·
Todos los issues de oracle/oci-python-sdk
Issues similares
-
[Bug] reef-hermes tells me to resume with hermes --resume, which does not work from my shell Abiertoarea: harness bug status: needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Human-Agent-Society/reef#625 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 80/100
learningequality/kolibri#15351 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Name consistency Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
eellak/triplestore#65 · 1 comentario ·