Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions examples/base_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ def exercise_api(client: BaseCloud, image_id=None):
'zone': 'a',
},
pycloudlib.OCI: {
'availability_domain': os.environ.get('AVAILABILITY_DOMAIN'),
'compartment_id': os.environ.get('COMPARTMENT_ID')
},
pycloudlib.Openstack: {
Expand Down
12 changes: 7 additions & 5 deletions examples/oci.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@
"""


def demo(compartment_id):
def demo(availability_domain, compartment_id):
"""Show example of using the OCI library.

Connects to OCI and launches released image. Then runs
through a number of examples.
"""
client = pycloudlib.OCI(
'Oracle test',
availability_domain=availability_domain,
compartment_id=compartment_id,
)

Expand All @@ -46,8 +47,9 @@ def demo(compartment_id):

if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG)
if len(sys.argv) != 2:
print('Usage: oci.py <oracle_compartment_id>')
if len(sys.argv) != 3:
print('Usage: oci.py <availability_domain> <compartment_id>')
sys.exit(1)
passed_compartment_id = sys.argv[1]
demo(passed_compartment_id)
passed_availability_domain = sys.argv[1]
passed_compartment_id = sys.argv[2]
demo(passed_availability_domain, passed_compartment_id)
11 changes: 7 additions & 4 deletions pycloudlib/oci/cloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ class OCI(BaseCloud):
_type = 'oci'

def __init__(
self, tag, timestamp_suffix=True, compartment_id=None,
config_path='~/.oci/config',
self, tag, timestamp_suffix=True, *, availability_domain,
compartment_id=None, config_path='~/.oci/config'
):
"""
Initialize the connection to OCI.
Expand All @@ -35,9 +35,13 @@ def __init__(
tag
compartment_id: A compartment found at
https://console.us-phoenix-1.oraclecloud.com/a/identity/compartments
availability_domain: One of the availability domains from:
'oci iam availability-domain list'
config_path: Path of OCI config file
"""
super().__init__(tag, timestamp_suffix)
self.availability_domain = availability_domain

if not compartment_id:
command = ['oci', 'iam', 'compartment', 'get']
exception_text = (
Expand Down Expand Up @@ -182,7 +186,6 @@ def launch(self, image_id, instance_type='VM.Standard2.1', user_data=None,
subnet = self.network_client.list_subnets(
self.compartment_id, vcn_id=vcn_id).data[0]
subnet_id = subnet.id
availability_domain = subnet.availability_domain

metadata = {
'ssh_authorized_keys': self.key_pair.public_key_content,
Expand All @@ -193,7 +196,7 @@ def launch(self, image_id, instance_type='VM.Standard2.1', user_data=None,

instance_details = oci.core.models.LaunchInstanceDetails(
display_name=self.tag,
availability_domain=availability_domain,
availability_domain=self.availability_domain,
compartment_id=self.compartment_id,
shape=instance_type,
subnet_id=subnet_id,
Expand Down