Merge branch 'feature/fixture-cleanup'
diff --git a/xos/configurations/acord/Makefile b/xos/configurations/acord/Makefile
index bca17dd..cfa04f8 100644
--- a/xos/configurations/acord/Makefile
+++ b/xos/configurations/acord/Makefile
@@ -9,7 +9,8 @@
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
acord: cord
diff --git a/xos/configurations/common/cloudlab-openstack.yaml b/xos/configurations/common/cloudlab-openstack.yaml
new file mode 100644
index 0000000..969f84c
--- /dev/null
+++ b/xos/configurations/common/cloudlab-openstack.yaml
@@ -0,0 +1,89 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+# Note:
+# assumes mydeployment.yaml has already been run, and the following exist:
+# MyDeployment
+# mysite
+# padmin@vicci.org
+# Public Shared IPv4
+# assumes the following have been created and filled with appropriate data:
+# /root/setup/admin_openrc
+# /root/setup/flat_net_name
+# /root/setup/padmin_public_key
+
+description: >
+ * Adds OpenCloud Sites, Deployments, and Controllers.
+
+imports:
+ - custom_types/xos.yaml
+
+topology_template:
+ node_templates:
+ trusty-server-multi-nic:
+ type: tosca.nodes.Image
+ properties:
+ disk_format: QCOW2
+ container_format: BARE
+
+ MyDeployment:
+ type: tosca.nodes.Deployment
+ properties:
+ no-create: True
+ no-delete: True
+ requirements:
+ - image:
+ node: trusty-server-multi-nic
+ relationship: tosca.relationships.SupportsImage
+
+ CloudLab:
+ type: tosca.nodes.Controller
+ requirements:
+ - deployment:
+ node: MyDeployment
+ relationship: tosca.relationships.ControllerDeployment
+ properties:
+ backend_type: OpenStack
+ version: Kilo
+ auth_url: { get_script_env: [ SELF, adminrc, OS_AUTH_URL, LOCAL_FILE] }
+ admin_user: { get_script_env: [ SELF, adminrc, OS_USERNAME, LOCAL_FILE] }
+ admin_password: { get_script_env: [ SELF, adminrc, OS_PASSWORD, LOCAL_FILE] }
+ admin_tenant: { get_script_env: [ SELF, adminrc, OS_TENANT_NAME, LOCAL_FILE] }
+ rabbit_user: { get_script_env: [ SELF, controller_settings, RABBIT_USER, LOCAL_FILE] }
+ rabbit_password: { get_script_env: [ SELF, controller_settings, RABBIT_PASS, LOCAL_FILE] }
+ rabbit_host: { get_script_env: [ SELF, controller_settings, CONTROLLER_FLAT_LAN_IP, LOCAL_FILE] }
+ domain: Default
+ artifacts:
+ adminrc: /root/setup/admin-openrc.sh
+ controller_settings: /root/setup/controller_settings
+
+ mysite:
+ type: tosca.nodes.Site
+ properties:
+ no-create: True
+ no-delete: True
+ requirements:
+ - deployment:
+ node: MyDeployment
+ relationship: tosca.relationships.SiteDeployment
+ requirements:
+ - controller:
+ node: CloudLab
+ relationship: tosca.relationships.UsesController
+
+ Public shared IPv4:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ no-create: True
+ no-delete: True
+ shared_network_name: { get_artifact: [ SELF, flat_net_name, LOCAL_FILE] }
+ artifacts:
+ flat_net_name: /root/setup/flat_net_name
+
+ padmin@vicci.org:
+ type: tosca.nodes.User
+ properties:
+ no-create: True
+ no-delete: True
+ public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE ] }
+ artifacts:
+ pubkey: /root/setup/padmin_public_key
diff --git a/xos/configurations/cord-deprecated/Makefile b/xos/configurations/cord-deprecated/Makefile
index 6633e17..184f2d5 100644
--- a/xos/configurations/cord-deprecated/Makefile
+++ b/xos/configurations/cord-deprecated/Makefile
@@ -9,7 +9,8 @@
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/cord/cord.yaml
diff --git a/xos/configurations/devel/Makefile b/xos/configurations/devel/Makefile
index cbf152c..e55f38b 100644
--- a/xos/configurations/devel/Makefile
+++ b/xos/configurations/devel/Makefile
@@ -8,7 +8,8 @@
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
containers:
diff --git a/xos/configurations/openvpn/Makefile b/xos/configurations/openvpn/Makefile
index f71f638..aa6f2d5 100644
--- a/xos/configurations/openvpn/Makefile
+++ b/xos/configurations/openvpn/Makefile
@@ -5,7 +5,9 @@
xos:
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
frontend:
diff --git a/xos/configurations/syndicate/Makefile b/xos/configurations/syndicate/Makefile
index 9d854f9..3b29ee5 100644
--- a/xos/configurations/syndicate/Makefile
+++ b/xos/configurations/syndicate/Makefile
@@ -8,7 +8,8 @@
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
containers:
diff --git a/xos/configurations/test/Makefile b/xos/configurations/test/Makefile
index adf349a..d4e54fd 100644
--- a/xos/configurations/test/Makefile
+++ b/xos/configurations/test/Makefile
@@ -7,7 +7,9 @@
xos:
sudo MYIP=$(MYIP) docker-compose up -d
bash ../common/wait_for_xos.sh
- sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/base.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/fixtures.yaml
+ sudo docker-compose run xos python /opt/xos/tosca/run.py none /opt/xos/configurations/common/mydeployment.yaml
+ sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /opt/xos/configurations/common/cloudlab-openstack.yaml
sudo MYIP=$(MYIP) docker-compose run xos python /opt/xos/tosca/run.py padmin@vicci.org /root/setup/nodes.yaml
sudo MYIP=$(MYIP) docker-compose run xos bash -c "cd /opt/xos/tosca/tests; python ./alltests.py"
sudo MYIP=$(MYIP) docker-compose run xos bash -c "cd /opt/xos/tosca/tests; python ./allObserverTests.py"
diff --git a/xos/tosca/custom_types/xos.m4 b/xos/tosca/custom_types/xos.m4
index cf33803..32eefa4 100644
--- a/xos/tosca/custom_types/xos.m4
+++ b/xos/tosca/custom_types/xos.m4
@@ -395,16 +395,17 @@
type: tosca.capabilities.xos.User
properties:
+ xos_base_props
password:
type: string
required: false
firstname:
type: string
- required: true
+ required: false
description: First name of User.
lastname:
type: string
- required: true
+ required: false
description: Last name of User.
phone:
type: string
@@ -420,11 +421,13 @@
description: Public key that will be installed in Instances.
is_active:
type: boolean
- default: true
+ required: false
+ #default: true
description: If True, the user may log in.
is_admin:
type: boolean
- default: false
+ required: false
+ #default: false
description: If True, the user has root admin privileges.
login_page:
type: string
@@ -438,6 +441,9 @@
An XOS network parameter type. May be applied to Networks and/or
Ports.
+ properties:
+ xos_base_props
+
capabilities:
network_parameter_type:
type: tosca.capabilities.xos.NetworkParameterType
@@ -454,13 +460,14 @@
type: tosca.capabilities.xos.NetworkTemplate
properties:
+ xos_base_props
visibility:
type: string
- default: private
+ required: false
description: Indicates whether network is publicly routable.
translation:
type: string
- default: none
+ required: false
description: Indicates whether network uses address translation.
shared_network_name:
type: string
@@ -472,7 +479,7 @@
description: Attaches this template to a specific OpenStack network.
topology_kind:
type: string
- default: BigSwitch
+ required: false
description: Describes the topology of the network.
controller_kind:
type: string
diff --git a/xos/tosca/custom_types/xos.yaml b/xos/tosca/custom_types/xos.yaml
index ac94e60..8102d1c 100644
--- a/xos/tosca/custom_types/xos.yaml
+++ b/xos/tosca/custom_types/xos.yaml
@@ -739,16 +739,28 @@
type: tosca.capabilities.xos.User
properties:
+ no-delete:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to delete this object
+ no-create:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to create this object
+ no-update:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to update this object
password:
type: string
required: false
firstname:
type: string
- required: true
+ required: false
description: First name of User.
lastname:
type: string
- required: true
+ required: false
description: Last name of User.
phone:
type: string
@@ -764,11 +776,13 @@
description: Public key that will be installed in Instances.
is_active:
type: boolean
- default: true
+ required: false
+ #default: true
description: If True, the user may log in.
is_admin:
type: boolean
- default: false
+ required: false
+ #default: false
description: If True, the user has root admin privileges.
login_page:
type: string
@@ -782,6 +796,20 @@
An XOS network parameter type. May be applied to Networks and/or
Ports.
+ properties:
+ no-delete:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to delete this object
+ no-create:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to create this object
+ no-update:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to update this object
+
capabilities:
network_parameter_type:
type: tosca.capabilities.xos.NetworkParameterType
@@ -798,13 +826,25 @@
type: tosca.capabilities.xos.NetworkTemplate
properties:
+ no-delete:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to delete this object
+ no-create:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to create this object
+ no-update:
+ type: boolean
+ default: false
+ description: Do not allow Tosca to update this object
visibility:
type: string
- default: private
+ required: false
description: Indicates whether network is publicly routable.
translation:
type: string
- default: none
+ required: false
description: Indicates whether network uses address translation.
shared_network_name:
type: string
@@ -816,7 +856,7 @@
description: Attaches this template to a specific OpenStack network.
topology_kind:
type: string
- default: BigSwitch
+ required: false
description: Describes the topology of the network.
controller_kind:
type: string
diff --git a/xos/tosca/resources/user.py b/xos/tosca/resources/user.py
index 79b2e71..55c0423 100644
--- a/xos/tosca/resources/user.py
+++ b/xos/tosca/resources/user.py
@@ -66,6 +66,8 @@
if not xos_args.get("site",None):
raise Exception("Site name must be specified when creating user")
+ if ("firstname" not in xos_args) or ("lastname" not in xos_args):
+ raise Exception("firstname and lastname must be specified when creating user")
user = User(**xos_args)
user.save()