예제 #1
0
파일: base.py 프로젝트: B-Rich/sahara
def check_node_group_basic_fields(plugin_name, hadoop_version, ng,
                                  plugin_configs=None):

    if ng.get('node_group_template_id'):
        ng_tmpl_id = ng['node_group_template_id']
        check_node_group_template_exists(ng_tmpl_id)
        ng_tmpl = api.get_node_group_template(ng_tmpl_id).to_wrapped_dict()
        check_node_group_basic_fields(plugin_name, hadoop_version,
                                      ng_tmpl['node_group_template'],
                                      plugin_configs)

    if ng.get('node_configs'):
        check_node_group_configs(plugin_name, hadoop_version,
                                 ng['node_configs'], plugin_configs)
    if ng.get('flavor_id'):
        check_flavor_exists(ng['flavor_id'])

    if ng.get('node_processes'):
        check_node_processes(plugin_name, hadoop_version, ng['node_processes'])

    if ng.get('image_id'):
        check_image_registered(ng['image_id'])

    if ng.get('volumes_per_node'):
        check_cinder_exists()

    if ng.get('floating_ip_pool'):
        check_floatingip_pool_exists(ng['name'], ng['floating_ip_pool'])
예제 #2
0
파일: base.py 프로젝트: savi-dev/sahara
def check_node_group_basic_fields(plugin_name,
                                  hadoop_version,
                                  ng,
                                  plugin_configs=None):

    if ng.get('node_group_template_id'):
        ng_tmpl_id = ng['node_group_template_id']
        check_node_group_template_exists(ng_tmpl_id)
        ng_tmpl = api.get_node_group_template(ng_tmpl_id).to_wrapped_dict()
        check_node_group_basic_fields(plugin_name, hadoop_version,
                                      ng_tmpl['node_group_template'],
                                      plugin_configs)

    if ng.get('node_configs'):
        check_node_group_configs(plugin_name, hadoop_version,
                                 ng['node_configs'], plugin_configs)
    if ng.get('flavor_id'):
        check_flavor_exists(ng['flavor_id'])

    if ng.get('node_processes'):
        check_node_processes(plugin_name, hadoop_version, ng['node_processes'])

    if ng.get('image_id'):
        check_image_registered(ng['image_id'])

    if ng.get('volumes_per_node'):
        check_cinder_exists()

    if ng.get('floating_ip_pool'):
        check_floatingip_pool_exists(ng['name'], ng['floating_ip_pool'])
예제 #3
0
def check_node_group_template_update(node_group_template_id, data, **kwargs):
    if data.get('plugin_name') and not data.get('hadoop_version'):
        raise ex.InvalidReferenceException(
            _("You must specify a hadoop_version value "
              "for your plugin_name"))

    if data.get('plugin_name'):
        plugin = data.get('plugin_name')
        version = data.get('hadoop_version')
        b.check_plugin_name_exists(plugin)
        b.check_plugin_supports_version(plugin, version)
    else:
        ngt = api.get_node_group_template(node_group_template_id)
        plugin = ngt.plugin_name
        if data.get('hadoop_version'):
            version = data.get('hadoop_version')
            b.check_plugin_supports_version(plugin, version)
        else:
            version = ngt.hadoop_version

    if data.get('image_id'):
        b.check_image_registered(data['image_id'])
        b.check_required_image_tags(plugin, version, data['image_id'])

    b.check_node_group_basic_fields(plugin, version, data)

    if data.get('shares'):
        shares.check_shares(data['shares'])
예제 #4
0
def check_node_group_template_update(node_group_template_id, data, **kwargs):
    if data.get('plugin_name') and not data.get('hadoop_version'):
        raise ex.InvalidReferenceException(
            _("You must specify a hadoop_version value "
              "for your plugin_name"))

    if data.get('plugin_name'):
        plugin = data.get('plugin_name')
        version = data.get('hadoop_version')
        b.check_plugin_name_exists(plugin)
        b.check_plugin_supports_version(plugin, version)
    else:
        ngt = api.get_node_group_template(node_group_template_id)
        plugin = ngt.plugin_name
        if data.get('hadoop_version'):
            version = data.get('hadoop_version')
            b.check_plugin_supports_version(plugin, version)
        else:
            version = ngt.hadoop_version

    if data.get('image_id'):
        b.check_image_registered(data['image_id'])
        b.check_required_image_tags(plugin,
                                    version,
                                    data['image_id'])

    b.check_node_group_basic_fields(plugin, version, data)

    if data.get('shares'):
        shares.check_shares(data['shares'])
예제 #5
0
파일: base.py 프로젝트: uladz/sahara
def check_node_group_basic_fields(plugin_name, hadoop_version, ng,
                                  plugin_configs=None):

    if ng.get('node_group_template_id'):
        ng_tmpl_id = ng['node_group_template_id']
        check_node_group_template_exists(ng_tmpl_id)
        ng_tmpl = api.get_node_group_template(ng_tmpl_id).to_wrapped_dict()
        check_node_group_basic_fields(plugin_name, hadoop_version,
                                      ng_tmpl['node_group_template'],
                                      plugin_configs)

    if ng.get('node_configs'):
        check_node_group_configs(plugin_name, hadoop_version,
                                 ng['node_configs'], plugin_configs)
    if ng.get('flavor_id'):
        check_flavor_exists(ng['flavor_id'])

    if ng.get('node_processes'):
        check_node_processes(plugin_name, hadoop_version, ng['node_processes'])

    if ng.get('image_id'):
        check_image_registered(ng['image_id'])

    if ng.get('volumes_per_node'):
        if not cinder.check_cinder_exists():
            raise ex.InvalidReferenceException(_("Cinder is not supported"))

        if ng.get('volumes_availability_zone'):
            check_volume_availability_zone_exist(
                ng['volumes_availability_zone'])

        if ng.get('volume_type'):
            check_volume_type_exists(ng['volume_type'])

        if not ng.get('volumes_size'):
            raise ex.InvalidReferenceException(
                _("You must specify a volumes_size parameter"))

    if ng.get('floating_ip_pool'):
        check_floatingip_pool_exists(ng['name'], ng['floating_ip_pool'])

    if ng.get('security_groups'):
        check_security_groups_exist(ng['security_groups'])

    if ng.get('availability_zone'):
        check_availability_zone_exist(ng['availability_zone'])
예제 #6
0
파일: base.py 프로젝트: B-Rich/sahara
def check_node_group_template_exists(ng_tmpl_id):
    if not api.get_node_group_template(id=ng_tmpl_id):
        raise ex.InvalidException("NodeGroup template with id '%s'"
                                  " doesn't exist" % ng_tmpl_id)
예제 #7
0
파일: base.py 프로젝트: savi-dev/sahara
def check_node_group_template_exists(ng_tmpl_id):
    if not api.get_node_group_template(id=ng_tmpl_id):
        raise ex.InvalidException("NodeGroup template with id '%s'"
                                  " doesn't exist" % ng_tmpl_id)
예제 #8
0
def check_node_group_template_exists(ng_tmpl_id):
    if not api.get_node_group_template(id=ng_tmpl_id):
        raise ex.NotFoundException(
            ng_tmpl_id, _("NodeGroup template with id '%s' not found"))
예제 #9
0
파일: base.py 프로젝트: uladz/sahara
def check_node_group_template_exists(ng_tmpl_id):
    if not api.get_node_group_template(id=ng_tmpl_id):
        raise ex.NotFoundException(
            ng_tmpl_id, _("NodeGroup template with id '%s' not found"))
예제 #10
0
파일: v10.py 프로젝트: qinweiwei/sahara
def node_group_templates_get(node_group_template_id):
    return u.render(
        api.get_node_group_template(node_group_template_id).to_wrapped_dict())
예제 #11
0
def node_group_templates_get(node_group_template_id):
    return u.render(
        api.get_node_group_template(node_group_template_id).to_wrapped_dict())