components/openstack/neutron/files/neutron-dhcp-agent.xml
author saurabh.vyas@oracle.com
Fri, 12 Jun 2015 10:44:04 -0700
changeset 4476 230dcd277ef6
parent 4389 a44bb9a2917e
child 6031 1aaf20a19738
permissions -rw-r--r--
21022556 optional dependencies on rabbitmq need work in OpenStack services

<?xml version="1.0" ?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
 Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.

 Licensed under the Apache License, Version 2.0 (the "License"); you may
 not use this file except in compliance with the License. You may obtain
 a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 License for the specific language governing permissions and limitations
 under the License.

 NOTE:  This service manifest is not editable; its contents will
 be overwritten by package or patch operations, including
 operating system upgrade.  Make customizations in a different
 file.
-->
<service_bundle type="manifest" name="neutron-dhcp-agent">

  <service version="1" type="service"
    name="application/openstack/neutron/neutron-dhcp-agent">

    <dependency name='multiuser' grouping='require_all' restart_on='error'
      type='service'>
      <service_fmri value='svc:/milestone/multi-user:default' />
    </dependency>

    <dependency name='upgrade' grouping='require_all' restart_on='none'
      type='service'>
      <service_fmri
        value='svc:/application/openstack/neutron/neutron-upgrade' />
    </dependency>

    <!-- neutron-dhcp-agent uses dnsmasq which is incompatible with running
         BIND, ISC DHCP, and TFTP -->
    <dependency name='exclude-bind' grouping='exclude_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/network/dns/server'/>
    </dependency>

    <dependency name='exclude-dhcp-relay' grouping='exclude_all'
      restart_on='none' type='service'>
      <service_fmri value='svc:/network/dhcp/relay'/>
    </dependency>

    <dependency name='exclude-dhcp-server' grouping='exclude_all'
      restart_on='none' type='service'>
      <service_fmri value='svc:/network/dhcp/server'/>
    </dependency>

    <dependency name='exclude-tftp' grouping='exclude_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/network/tftp/udp6'/>
    </dependency>

    <dependency name='exclude-dnsmasq' grouping='exclude_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/network/dnsmasq'/>
    </dependency>

    <dependency name='ntp' grouping='optional_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/network/ntp'/>
    </dependency>

    <dependency name='rabbitmq' grouping='optional_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/application/rabbitmq'/>
    </dependency>

    <dependency name='neutron-server' grouping='optional_all' restart_on='none'
      type='service'>
      <service_fmri value='svc:/application/openstack/neutron/neutron-server'/>
    </dependency>

    <logfile_attributes permissions='600'/>

    <exec_method timeout_seconds="60" type="method" name="start"
      exec="/lib/svc/method/neutron-dhcp-agent %m %{config/config_path} %{config/dhcp_config_path}">
      <method_context>
        <method_credential user='neutron' group='neutron'
          privileges='basic,{net_privaddr}:53/udp,{net_privaddr}:53/tcp,{net_privaddr}:67/udp,{net_privaddr}:69/udp,{net_privaddr}:547/udp,net_icmpaccess,sys_ip_config' />
      </method_context>
    </exec_method>
    <exec_method timeout_seconds="600" type="method" name="stop"
      exec="/lib/svc/method/neutron-dhcp-agent %m %{restarter/contract}">
      <method_context>
        <!-- sys_ip_config is required to set 'hostmodel' ipadm property -->
        <method_credential user='neutron' group='neutron' privileges='basic,sys_ip_config' />
      </method_context>
    </exec_method>

    <instance name='default' enabled='false'>
      <!-- to start/stop/refresh the service -->
      <property_group name='general' type='framework'>
        <propval name='action_authorization' type='astring'
                 value='solaris.smf.manage.neutron' />
        <propval name='value_authorization' type='astring'
                 value='solaris.smf.value.neutron' />
      </property_group>

      <property_group name='config' type='application'>
        <propval name='config_path' type='astring'
          value='/etc/neutron/neutron.conf'/>
        <propval name='dhcp_config_path' type='astring'
          value='/etc/neutron/dhcp_agent.ini'/>
      </property_group>
    </instance>

    <template>
      <common_name>
        <loctext xml:lang="C">
          OpenStack Neutron DHCP Agent
        </loctext>
      </common_name>
      <description>
        <loctext xml:lang="C">
          neutron-dhcp-agent is a server daemon that provides DHCP services to
          tenant networks.
        </loctext>
      </description>
      <pg_pattern name='config' type='application' required='true'>
        <prop_pattern name='config_path' type='astring'
          required='true'>
          <common_name>
            <loctext xml:lang='C'>
              Filesystem path to Neutron configuration file
            </loctext>
          </common_name>
        </prop_pattern>
        <prop_pattern name='dhcp_config_path' type='astring'
          required='true'>
          <common_name>
            <loctext xml:lang='C'>
              Filesystem path to Neutron DHCP .ini file
            </loctext>
          </common_name>
        </prop_pattern>
      </pg_pattern>
    </template>
  </service>
</service_bundle>